From 771f69d2befc6d1e34df4ef3ad74ddf0571709a2 Mon Sep 17 00:00:00 2001 From: jonahwilliams Date: Wed, 24 Apr 2024 08:15:51 -0700 Subject: [PATCH 1/3] [Impeller] use spec constant for gaussian shader, rename, and reuse vertex sources. --- impeller/entity/BUILD.gn | 12 ++--- impeller/entity/contents/content_context.cc | 4 +- impeller/entity/contents/content_context.h | 53 ++++++++----------- .../filters/gaussian_blur_filter_contents.cc | 39 ++++++-------- .../filters/gaussian_blur_filter_contents.h | 6 +-- ...gaussian_blur_filter_contents_unittests.cc | 15 +++--- .../shaders/blending/vertices_uber.vert | 26 --------- .../{ => filters}/border_mask_blur.frag | 0 .../{filter.vert => filter_position.vert} | 0 .../filter_position_uv.vert} | 0 .../kernel.glsl => filters/gaussian.frag} | 9 ++-- .../shaders/filters/morphology_filter.vert | 23 -------- .../entity/shaders/gaussian_blur/kernel.vert | 23 -------- .../shaders/gaussian_blur/kernel_decal.frag | 9 ---- .../shaders/gaussian_blur/kernel_nodecal.frag | 9 ---- 15 files changed, 59 insertions(+), 169 deletions(-) delete mode 100644 impeller/entity/shaders/blending/vertices_uber.vert rename impeller/entity/shaders/{ => filters}/border_mask_blur.frag (100%) rename impeller/entity/shaders/filters/{filter.vert => filter_position.vert} (100%) rename impeller/entity/shaders/{border_mask_blur.vert => filters/filter_position_uv.vert} (100%) rename impeller/entity/shaders/{gaussian_blur/kernel.glsl => filters/gaussian.frag} (88%) delete mode 100644 impeller/entity/shaders/filters/morphology_filter.vert delete mode 100644 impeller/entity/shaders/gaussian_blur/kernel.vert delete mode 100644 impeller/entity/shaders/gaussian_blur/kernel_decal.frag delete mode 100644 impeller/entity/shaders/gaussian_blur/kernel_nodecal.frag diff --git a/impeller/entity/BUILD.gn b/impeller/entity/BUILD.gn index a919744158fd4..164ab28ef54a8 100644 --- a/impeller/entity/BUILD.gn +++ b/impeller/entity/BUILD.gn @@ -16,14 +16,9 @@ impeller_shaders("entity_shaders") { shaders = [ "shaders/blending/advanced_blend.vert", "shaders/blending/advanced_blend.frag", - "shaders/border_mask_blur.frag", - "shaders/border_mask_blur.vert", "shaders/clip.frag", "shaders/clip.vert", "shaders/gradients/conical_gradient_fill.frag", - "shaders/gaussian_blur/kernel_decal.frag", - "shaders/gaussian_blur/kernel_nodecal.frag", - "shaders/gaussian_blur/kernel.vert", "shaders/glyph_atlas.frag", "shaders/glyph_atlas_color.frag", "shaders/glyph_atlas.vert", @@ -46,15 +41,16 @@ impeller_shaders("entity_shaders") { "shaders/vertices.frag", "shaders/blending/porter_duff_blend.frag", "shaders/blending/porter_duff_blend.vert", + "shaders/filters/border_mask_blur.frag", "shaders/filters/color_matrix_color_filter.frag", - "shaders/filters/filter.vert", + "shaders/filters/filter_position.vert", + "shaders/filters/filter_position_uv.vert", + "shaders/filters/gaussian.frag", "shaders/filters/yuv_to_rgb_filter.frag", "shaders/filters/srgb_to_linear_filter.frag", "shaders/filters/linear_to_srgb_filter.frag", "shaders/filters/morphology_filter.frag", - "shaders/filters/morphology_filter.vert", "shaders/blending/vertices_uber.frag", - "shaders/blending/vertices_uber.vert", ] if (impeller_debug) { diff --git a/impeller/entity/contents/content_context.cc b/impeller/entity/contents/content_context.cc index d22bb4cc097a2..a8faaec0093ed 100644 --- a/impeller/entity/contents/content_context.cc +++ b/impeller/entity/contents/content_context.cc @@ -422,8 +422,8 @@ ContentContext::ContentContext( rrect_blur_pipelines_.CreateDefault(*context_, options_trianglestrip); texture_strict_src_pipelines_.CreateDefault(*context_, options); tiled_texture_pipelines_.CreateDefault(*context_, options, {supports_decal}); - kernel_decal_pipelines_.CreateDefault(*context_, options_trianglestrip); - kernel_nodecal_pipelines_.CreateDefault(*context_, options_trianglestrip); + gaussian_blur_pipelines_.CreateDefault(*context_, options_trianglestrip, + {supports_decal}); border_mask_blur_pipelines_.CreateDefault(*context_, options_trianglestrip); morphology_filter_pipelines_.CreateDefault(*context_, options_trianglestrip, {supports_decal}); diff --git a/impeller/entity/contents/content_context.h b/impeller/entity/contents/content_context.h index 5bbe6d0cda8f5..99a785cf9dcf3 100644 --- a/impeller/entity/contents/content_context.h +++ b/impeller/entity/contents/content_context.h @@ -30,12 +30,13 @@ #endif // IMPELLER_DEBUG #include "impeller/entity/border_mask_blur.frag.h" -#include "impeller/entity/border_mask_blur.vert.h" #include "impeller/entity/clip.frag.h" #include "impeller/entity/clip.vert.h" #include "impeller/entity/color_matrix_color_filter.frag.h" #include "impeller/entity/conical_gradient_fill.frag.h" -#include "impeller/entity/filter.vert.h" +#include "impeller/entity/filter_position.vert.h" +#include "impeller/entity/filter_position_uv.vert.h" +#include "impeller/entity/gaussian.frag.h" #include "impeller/entity/glyph_atlas.frag.h" #include "impeller/entity/glyph_atlas.vert.h" #include "impeller/entity/glyph_atlas_color.frag.h" @@ -47,6 +48,7 @@ #include "impeller/entity/points.comp.h" #include "impeller/entity/porter_duff_blend.frag.h" #include "impeller/entity/porter_duff_blend.vert.h" +#include "impeller/entity/position_color.vert.h" #include "impeller/entity/radial_gradient_fill.frag.h" #include "impeller/entity/rrect_blur.frag.h" #include "impeller/entity/rrect_blur.vert.h" @@ -62,12 +64,6 @@ #include "impeller/entity/vertices.frag.h" #include "impeller/entity/yuv_to_rgb_filter.frag.h" -#include "impeller/entity/kernel.vert.h" -#include "impeller/entity/kernel_decal.frag.h" -#include "impeller/entity/kernel_nodecal.frag.h" - -#include "impeller/entity/position_color.vert.h" - #include "impeller/typographer/glyph_atlas.h" #include "impeller/entity/conical_gradient_ssbo_fill.frag.h" @@ -82,7 +78,6 @@ #include "impeller/entity/framebuffer_blend.vert.h" #include "impeller/entity/vertices_uber.frag.h" -#include "impeller/entity/vertices_uber.vert.h" #ifdef IMPELLER_ENABLE_OPENGLES #include "impeller/entity/tiled_texture_fill_external.frag.h" @@ -135,23 +130,27 @@ using TextureStrictSrcPipeline = using TiledTexturePipeline = RenderPipelineHandle; -using KernelDecalPipeline = - RenderPipelineHandle; -using KernelPipeline = - RenderPipelineHandle; +using GaussianBlurPipeline = + RenderPipelineHandle; using BorderMaskBlurPipeline = - RenderPipelineHandle; using MorphologyFilterPipeline = - RenderPipelineHandle; using ColorMatrixColorFilterPipeline = - RenderPipelineHandle; using LinearToSrgbFilterPipeline = - RenderPipelineHandle; + RenderPipelineHandle; using SrgbToLinearFilterPipeline = - RenderPipelineHandle; + RenderPipelineHandle; +using YUVToRGBFilterPipeline = + RenderPipelineHandle; + using GlyphAtlasPipeline = RenderPipelineHandle; using GlyphAtlasColorPipeline = @@ -163,8 +162,6 @@ using ClipPipeline = RenderPipelineHandle; using GeometryColorPipeline = RenderPipelineHandle; -using YUVToRGBFilterPipeline = - RenderPipelineHandle; // Advanced blends using BlendColorPipeline = RenderPipelineHandle; /// Draw Vertices/Atlas Uber Shader -using VerticesUberShader = - RenderPipelineHandle; +using VerticesUberShader = RenderPipelineHandle; /// Geometry Pipelines using PointsComputeShaderPipeline = ComputePipelineBuilder; @@ -481,14 +478,9 @@ class ContentContext { return GetPipeline(tiled_texture_pipelines_, opts); } - std::shared_ptr> GetKernelDecalPipeline( - ContentContextOptions opts) const { - return GetPipeline(kernel_decal_pipelines_, opts); - } - - std::shared_ptr> GetKernelPipeline( + std::shared_ptr> GetGaussianBlurPipeline( ContentContextOptions opts) const { - return GetPipeline(kernel_nodecal_pipelines_, opts); + return GetPipeline(gaussian_blur_pipelines_, opts); } std::shared_ptr> GetBorderMaskBlurPipeline( @@ -925,8 +917,7 @@ class ContentContext { tiled_texture_external_pipelines_; #endif // IMPELLER_ENABLE_OPENGLES mutable Variants tiled_texture_pipelines_; - mutable Variants kernel_decal_pipelines_; - mutable Variants kernel_nodecal_pipelines_; + mutable Variants gaussian_blur_pipelines_; mutable Variants border_mask_blur_pipelines_; mutable Variants morphology_filter_pipelines_; mutable Variants diff --git a/impeller/entity/contents/filters/gaussian_blur_filter_contents.cc b/impeller/entity/contents/filters/gaussian_blur_filter_contents.cc index 9ac17dff218bc..c6d5e54a8ba14 100644 --- a/impeller/entity/contents/filters/gaussian_blur_filter_contents.cc +++ b/impeller/entity/contents/filters/gaussian_blur_filter_contents.cc @@ -8,25 +8,22 @@ #include "flutter/fml/make_copyable.h" #include "impeller/entity/contents/clip_contents.h" -#include "impeller/entity/contents/color_source_contents.h" #include "impeller/entity/contents/content_context.h" #include "impeller/entity/texture_fill.frag.h" #include "impeller/entity/texture_fill.vert.h" -#include "impeller/renderer/command.h" #include "impeller/renderer/render_pass.h" -#include "impeller/renderer/texture_mipmap.h" #include "impeller/renderer/vertex_buffer_builder.h" namespace impeller { -using GaussianBlurVertexShader = KernelPipeline::VertexShader; -using GaussianBlurFragmentShader = KernelPipeline::FragmentShader; +using GaussianBlurVertexShader = GaussianBlurPipeline::VertexShader; +using GaussianBlurFragmentShader = GaussianBlurPipeline::FragmentShader; const int32_t GaussianBlurFilterContents::kBlurFilterRequiredMipCount = 4; namespace { -// 48 comes from kernel.glsl. +// 48 comes from gaussian.frag. const int32_t kMaxKernelSize = 48; SamplerDescriptor MakeSamplerDescriptor(MinMagFilter filter, @@ -155,14 +152,7 @@ fml::StatusOr MakeBlurSubpass( ContentContextOptions options = OptionsFromPass(pass); options.primitive_type = PrimitiveType::kTriangleStrip; - - if (tile_mode == Entity::TileMode::kDecal && - !renderer.GetDeviceCapabilities() - .SupportsDecalSamplerAddressMode()) { - pass.SetPipeline(renderer.GetKernelDecalPipeline(options)); - } else { - pass.SetPipeline(renderer.GetKernelPipeline(options)); - } + pass.SetPipeline(renderer.GetGaussianBlurPipeline(options)); BindVertices(pass, host_buffer, { @@ -181,7 +171,7 @@ fml::StatusOr MakeBlurSubpass( linear_sampler_descriptor)); GaussianBlurVertexShader::BindFrameInfo( pass, host_buffer.EmplaceUniform(frame_info)); - KernelPipeline::FragmentShader::KernelSamples kernel_samples = + GaussianBlurPipeline::FragmentShader::KernelSamples kernel_samples = LerpHackKernelSamples(GenerateBlurInfo(blur_info)); FML_CHECK(kernel_samples.sample_count < kMaxKernelSize); GaussianBlurFragmentShader::BindKernelSamples( @@ -600,9 +590,9 @@ Scalar GaussianBlurFilterContents::ScaleSigma(Scalar sigma) { return clamped * scalar; } -KernelPipeline::FragmentShader::KernelSamples GenerateBlurInfo( +GaussianBlurPipeline::FragmentShader::KernelSamples GenerateBlurInfo( BlurParameters parameters) { - KernelPipeline::FragmentShader::KernelSamples result; + GaussianBlurPipeline::FragmentShader::KernelSamples result; result.sample_count = ((2 * parameters.blur_radius) / parameters.step_size) + 1; @@ -617,7 +607,7 @@ KernelPipeline::FragmentShader::KernelSamples GenerateBlurInfo( Scalar tally = 0.0f; for (int i = 0; i < result.sample_count; ++i) { int x = x_offset + (i * parameters.step_size) - parameters.blur_radius; - result.samples[i] = KernelPipeline::FragmentShader::KernelSample{ + result.samples[i] = GaussianBlurPipeline::FragmentShader::KernelSample{ .uv_offset = parameters.blur_uv_offset * x, .coefficient = expf(-0.5f * (x * x) / (parameters.blur_sigma * parameters.blur_sigma)) / @@ -636,9 +626,9 @@ KernelPipeline::FragmentShader::KernelSamples GenerateBlurInfo( // This works by shrinking the kernel size by 2 and relying on lerp to read // between the samples. -KernelPipeline::FragmentShader::KernelSamples LerpHackKernelSamples( - KernelPipeline::FragmentShader::KernelSamples parameters) { - KernelPipeline::FragmentShader::KernelSamples result; +GaussianBlurPipeline::FragmentShader::KernelSamples LerpHackKernelSamples( + GaussianBlurPipeline::FragmentShader::KernelSamples parameters) { + GaussianBlurPipeline::FragmentShader::KernelSamples result; result.sample_count = ((parameters.sample_count - 1) / 2) + 1; int32_t middle = result.sample_count / 2; int32_t j = 0; @@ -646,10 +636,11 @@ KernelPipeline::FragmentShader::KernelSamples LerpHackKernelSamples( if (i == middle) { result.samples[i] = parameters.samples[j++]; } else { - KernelPipeline::FragmentShader::KernelSample left = parameters.samples[j]; - KernelPipeline::FragmentShader::KernelSample right = + GaussianBlurPipeline::FragmentShader::KernelSample left = + parameters.samples[j]; + GaussianBlurPipeline::FragmentShader::KernelSample right = parameters.samples[j + 1]; - result.samples[i] = KernelPipeline::FragmentShader::KernelSample{ + result.samples[i] = GaussianBlurPipeline::FragmentShader::KernelSample{ .uv_offset = (left.uv_offset * left.coefficient + right.uv_offset * right.coefficient) / (left.coefficient + right.coefficient), diff --git a/impeller/entity/contents/filters/gaussian_blur_filter_contents.h b/impeller/entity/contents/filters/gaussian_blur_filter_contents.h index 7f545c079a009..2cee099c43a02 100644 --- a/impeller/entity/contents/filters/gaussian_blur_filter_contents.h +++ b/impeller/entity/contents/filters/gaussian_blur_filter_contents.h @@ -19,13 +19,13 @@ struct BlurParameters { int step_size; }; -KernelPipeline::FragmentShader::KernelSamples GenerateBlurInfo( +GaussianBlurPipeline::FragmentShader::KernelSamples GenerateBlurInfo( BlurParameters parameters); /// This will shrink the size of a kernel by roughly half by sampling between /// samples and relying on linear interpolation between the samples. -KernelPipeline::FragmentShader::KernelSamples LerpHackKernelSamples( - KernelPipeline::FragmentShader::KernelSamples samples); +GaussianBlurPipeline::FragmentShader::KernelSamples LerpHackKernelSamples( + GaussianBlurPipeline::FragmentShader::KernelSamples samples); /// Performs a bidirectional Gaussian blur. /// diff --git a/impeller/entity/contents/filters/gaussian_blur_filter_contents_unittests.cc b/impeller/entity/contents/filters/gaussian_blur_filter_contents_unittests.cc index 9d0a87d544c19..ec64d46cf1450 100644 --- a/impeller/entity/contents/filters/gaussian_blur_filter_contents_unittests.cc +++ b/impeller/entity/contents/filters/gaussian_blur_filter_contents_unittests.cc @@ -5,6 +5,7 @@ #include "flutter/testing/testing.h" #include "fml/status_or.h" #include "gmock/gmock.h" +#include "impeller/entity/contents/content_context.h" #include "impeller/entity/contents/filters/gaussian_blur_filter_contents.h" #include "impeller/entity/contents/texture_contents.h" #include "impeller/entity/entity_playground.h" @@ -456,7 +457,7 @@ TEST(GaussianBlurFilterContentsTest, Coefficients) { .blur_sigma = 1, .blur_radius = 5, .step_size = 1}; - KernelPipeline::FragmentShader::KernelSamples samples = + GaussianBlurPipeline::FragmentShader::KernelSamples samples = GenerateBlurInfo(parameters); EXPECT_EQ(samples.sample_count, 9); @@ -477,7 +478,7 @@ TEST(GaussianBlurFilterContentsTest, Coefficients) { } TEST(GaussianBlurFilterContentsTest, LerpHackKernelSamplesSimple) { - KernelPipeline::FragmentShader::KernelSamples kernel_samples = { + GaussianBlurPipeline::FragmentShader::KernelSamples kernel_samples = { .sample_count = 5, .samples = { @@ -504,13 +505,13 @@ TEST(GaussianBlurFilterContentsTest, LerpHackKernelSamplesSimple) { }, }; - KernelPipeline::FragmentShader::KernelSamples fast_kernel_samples = + GaussianBlurPipeline::FragmentShader::KernelSamples fast_kernel_samples = LerpHackKernelSamples(kernel_samples); EXPECT_EQ(fast_kernel_samples.sample_count, 3); - KernelPipeline::FragmentShader::KernelSample* samples = + GaussianBlurPipeline::FragmentShader::KernelSample* samples = kernel_samples.samples; - KernelPipeline::FragmentShader::KernelSample* fast_samples = + GaussianBlurPipeline::FragmentShader::KernelSample* fast_samples = fast_kernel_samples.samples; ////////////////////////////////////////////////////////////////////////////// @@ -562,10 +563,10 @@ TEST(GaussianBlurFilterContentsTest, LerpHackKernelSamplesComplex) { .blur_sigma = sigma, .blur_radius = blur_radius, .step_size = 1}; - KernelPipeline::FragmentShader::KernelSamples kernel_samples = + GaussianBlurPipeline::FragmentShader::KernelSamples kernel_samples = GenerateBlurInfo(parameters); EXPECT_EQ(kernel_samples.sample_count, 33); - KernelPipeline::FragmentShader::KernelSamples fast_kernel_samples = + GaussianBlurPipeline::FragmentShader::KernelSamples fast_kernel_samples = LerpHackKernelSamples(kernel_samples); EXPECT_EQ(fast_kernel_samples.sample_count, 17); float data[33]; diff --git a/impeller/entity/shaders/blending/vertices_uber.vert b/impeller/entity/shaders/blending/vertices_uber.vert deleted file mode 100644 index f7fe022c14a3d..0000000000000 --- a/impeller/entity/shaders/blending/vertices_uber.vert +++ /dev/null @@ -1,26 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include -#include - -uniform FrameInfo { - mat4 mvp; - float texture_sampler_y_coord_scale; -} -frame_info; - -in vec2 vertices; -in vec2 texture_coords; -in vec4 color; - -out vec2 v_texture_coords; -out mediump f16vec4 v_color; - -void main() { - gl_Position = frame_info.mvp * vec4(vertices, 0.0, 1.0); - v_color = f16vec4(color); - v_texture_coords = - IPRemapCoords(texture_coords, frame_info.texture_sampler_y_coord_scale); -} diff --git a/impeller/entity/shaders/border_mask_blur.frag b/impeller/entity/shaders/filters/border_mask_blur.frag similarity index 100% rename from impeller/entity/shaders/border_mask_blur.frag rename to impeller/entity/shaders/filters/border_mask_blur.frag diff --git a/impeller/entity/shaders/filters/filter.vert b/impeller/entity/shaders/filters/filter_position.vert similarity index 100% rename from impeller/entity/shaders/filters/filter.vert rename to impeller/entity/shaders/filters/filter_position.vert diff --git a/impeller/entity/shaders/border_mask_blur.vert b/impeller/entity/shaders/filters/filter_position_uv.vert similarity index 100% rename from impeller/entity/shaders/border_mask_blur.vert rename to impeller/entity/shaders/filters/filter_position_uv.vert diff --git a/impeller/entity/shaders/gaussian_blur/kernel.glsl b/impeller/entity/shaders/filters/gaussian.frag similarity index 88% rename from impeller/entity/shaders/gaussian_blur/kernel.glsl rename to impeller/entity/shaders/filters/gaussian.frag index 1aba5ad3e9342..0fb5fb3b00ec9 100644 --- a/impeller/entity/shaders/gaussian_blur/kernel.glsl +++ b/impeller/entity/shaders/filters/gaussian.frag @@ -9,6 +9,8 @@ uniform f16sampler2D texture_sampler; +layout(constant_id = 0) const float supports_decal = 1.0; + struct KernelSample { vec2 uv_offset; float coefficient; @@ -21,11 +23,10 @@ uniform KernelSamples { blur_info; f16vec4 Sample(f16sampler2D tex, vec2 coords) { -#if ENABLE_DECAL_SPECIALIZATION + if (supports_decal == 1.0) { + return texture(tex, coords); + } return IPHalfSampleDecal(tex, coords); -#else - return texture(tex, coords); -#endif } in vec2 v_texture_coords; diff --git a/impeller/entity/shaders/filters/morphology_filter.vert b/impeller/entity/shaders/filters/morphology_filter.vert deleted file mode 100644 index 0dbc6fd4bfad4..0000000000000 --- a/impeller/entity/shaders/filters/morphology_filter.vert +++ /dev/null @@ -1,23 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include -#include - -uniform FrameInfo { - mat4 mvp; - float texture_sampler_y_coord_scale; -} -frame_info; - -in vec2 position; -in vec2 texture_coords; - -out vec2 v_texture_coords; - -void main() { - gl_Position = frame_info.mvp * vec4(position, 0.0, 1.0); - v_texture_coords = - IPRemapCoords(texture_coords, frame_info.texture_sampler_y_coord_scale); -} diff --git a/impeller/entity/shaders/gaussian_blur/kernel.vert b/impeller/entity/shaders/gaussian_blur/kernel.vert deleted file mode 100644 index f8a08ecee3b37..0000000000000 --- a/impeller/entity/shaders/gaussian_blur/kernel.vert +++ /dev/null @@ -1,23 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include -#include - -uniform FrameInfo { - mat4 mvp; - float texture_sampler_y_coord_scale; -} -frame_info; - -in vec2 vertices; -in vec2 texture_coords; - -out vec2 v_texture_coords; - -void main() { - gl_Position = frame_info.mvp * vec4(vertices, 0.0, 1.0); - v_texture_coords = - IPRemapCoords(texture_coords, frame_info.texture_sampler_y_coord_scale); -} diff --git a/impeller/entity/shaders/gaussian_blur/kernel_decal.frag b/impeller/entity/shaders/gaussian_blur/kernel_decal.frag deleted file mode 100644 index 114ee133fd068..0000000000000 --- a/impeller/entity/shaders/gaussian_blur/kernel_decal.frag +++ /dev/null @@ -1,9 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -precision mediump float; - -#define ENABLE_DECAL_SPECIALIZATION 1 - -#include "kernel.glsl" diff --git a/impeller/entity/shaders/gaussian_blur/kernel_nodecal.frag b/impeller/entity/shaders/gaussian_blur/kernel_nodecal.frag deleted file mode 100644 index ee87a79d00823..0000000000000 --- a/impeller/entity/shaders/gaussian_blur/kernel_nodecal.frag +++ /dev/null @@ -1,9 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -precision mediump float; - -#define ENABLE_DECAL_SPECIALIZATION 0 - -#include "kernel.glsl" From 529cce1dd7b2e917e6b6ea7bd345aa37129d037b Mon Sep 17 00:00:00 2001 From: jonahwilliams Date: Wed, 24 Apr 2024 08:35:59 -0700 Subject: [PATCH 2/3] remove import. --- impeller/entity/contents/content_context.h | 1 - 1 file changed, 1 deletion(-) diff --git a/impeller/entity/contents/content_context.h b/impeller/entity/contents/content_context.h index 99a785cf9dcf3..7761c8faeb29d 100644 --- a/impeller/entity/contents/content_context.h +++ b/impeller/entity/contents/content_context.h @@ -44,7 +44,6 @@ #include "impeller/entity/linear_gradient_fill.frag.h" #include "impeller/entity/linear_to_srgb_filter.frag.h" #include "impeller/entity/morphology_filter.frag.h" -#include "impeller/entity/morphology_filter.vert.h" #include "impeller/entity/points.comp.h" #include "impeller/entity/porter_duff_blend.frag.h" #include "impeller/entity/porter_duff_blend.vert.h" From 21525dbc54bc52e7f02f3a1a6e3ab11e62461f72 Mon Sep 17 00:00:00 2001 From: jonahwilliams Date: Wed, 24 Apr 2024 09:57:03 -0700 Subject: [PATCH 3/3] license update. --- ci/licenses_golden/licenses_flutter | 26 +- impeller/tools/malioc.json | 2367 ++++++++------------------- 2 files changed, 694 insertions(+), 1699 deletions(-) diff --git a/ci/licenses_golden/licenses_flutter b/ci/licenses_golden/licenses_flutter index a76e2b9f70e1b..31843bba785e7 100644 --- a/ci/licenses_golden/licenses_flutter +++ b/ci/licenses_golden/licenses_flutter @@ -40378,24 +40378,19 @@ ORIGIN: ../../../flutter/impeller/entity/shaders/blending/framebuffer_blend.vert ORIGIN: ../../../flutter/impeller/entity/shaders/blending/porter_duff_blend.frag + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/entity/shaders/blending/porter_duff_blend.vert + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/entity/shaders/blending/vertices_uber.frag + ../../../flutter/LICENSE -ORIGIN: ../../../flutter/impeller/entity/shaders/blending/vertices_uber.vert + ../../../flutter/LICENSE -ORIGIN: ../../../flutter/impeller/entity/shaders/border_mask_blur.frag + ../../../flutter/LICENSE -ORIGIN: ../../../flutter/impeller/entity/shaders/border_mask_blur.vert + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/entity/shaders/clip.frag + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/entity/shaders/clip.vert + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/entity/shaders/debug/checkerboard.frag + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/entity/shaders/debug/checkerboard.vert + ../../../flutter/LICENSE +ORIGIN: ../../../flutter/impeller/entity/shaders/filters/border_mask_blur.frag + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/entity/shaders/filters/color_matrix_color_filter.frag + ../../../flutter/LICENSE -ORIGIN: ../../../flutter/impeller/entity/shaders/filters/filter.vert + ../../../flutter/LICENSE +ORIGIN: ../../../flutter/impeller/entity/shaders/filters/filter_position.vert + ../../../flutter/LICENSE +ORIGIN: ../../../flutter/impeller/entity/shaders/filters/filter_position_uv.vert + ../../../flutter/LICENSE +ORIGIN: ../../../flutter/impeller/entity/shaders/filters/gaussian.frag + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/entity/shaders/filters/linear_to_srgb_filter.frag + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/entity/shaders/filters/morphology_filter.frag + ../../../flutter/LICENSE -ORIGIN: ../../../flutter/impeller/entity/shaders/filters/morphology_filter.vert + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/entity/shaders/filters/srgb_to_linear_filter.frag + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/entity/shaders/filters/yuv_to_rgb_filter.frag + ../../../flutter/LICENSE -ORIGIN: ../../../flutter/impeller/entity/shaders/gaussian_blur/kernel.glsl + ../../../flutter/LICENSE -ORIGIN: ../../../flutter/impeller/entity/shaders/gaussian_blur/kernel.vert + ../../../flutter/LICENSE -ORIGIN: ../../../flutter/impeller/entity/shaders/gaussian_blur/kernel_decal.frag + ../../../flutter/LICENSE -ORIGIN: ../../../flutter/impeller/entity/shaders/gaussian_blur/kernel_nodecal.frag + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/entity/shaders/geometry/points.comp + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/entity/shaders/glyph_atlas.frag + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/entity/shaders/glyph_atlas.vert + ../../../flutter/LICENSE @@ -43260,24 +43255,19 @@ FILE: ../../../flutter/impeller/entity/shaders/blending/framebuffer_blend.vert FILE: ../../../flutter/impeller/entity/shaders/blending/porter_duff_blend.frag FILE: ../../../flutter/impeller/entity/shaders/blending/porter_duff_blend.vert FILE: ../../../flutter/impeller/entity/shaders/blending/vertices_uber.frag -FILE: ../../../flutter/impeller/entity/shaders/blending/vertices_uber.vert -FILE: ../../../flutter/impeller/entity/shaders/border_mask_blur.frag -FILE: ../../../flutter/impeller/entity/shaders/border_mask_blur.vert FILE: ../../../flutter/impeller/entity/shaders/clip.frag FILE: ../../../flutter/impeller/entity/shaders/clip.vert FILE: ../../../flutter/impeller/entity/shaders/debug/checkerboard.frag FILE: ../../../flutter/impeller/entity/shaders/debug/checkerboard.vert +FILE: ../../../flutter/impeller/entity/shaders/filters/border_mask_blur.frag FILE: ../../../flutter/impeller/entity/shaders/filters/color_matrix_color_filter.frag -FILE: ../../../flutter/impeller/entity/shaders/filters/filter.vert +FILE: ../../../flutter/impeller/entity/shaders/filters/filter_position.vert +FILE: ../../../flutter/impeller/entity/shaders/filters/filter_position_uv.vert +FILE: ../../../flutter/impeller/entity/shaders/filters/gaussian.frag FILE: ../../../flutter/impeller/entity/shaders/filters/linear_to_srgb_filter.frag FILE: ../../../flutter/impeller/entity/shaders/filters/morphology_filter.frag -FILE: ../../../flutter/impeller/entity/shaders/filters/morphology_filter.vert FILE: ../../../flutter/impeller/entity/shaders/filters/srgb_to_linear_filter.frag FILE: ../../../flutter/impeller/entity/shaders/filters/yuv_to_rgb_filter.frag -FILE: ../../../flutter/impeller/entity/shaders/gaussian_blur/kernel.glsl -FILE: ../../../flutter/impeller/entity/shaders/gaussian_blur/kernel.vert -FILE: ../../../flutter/impeller/entity/shaders/gaussian_blur/kernel_decal.frag -FILE: ../../../flutter/impeller/entity/shaders/gaussian_blur/kernel_nodecal.frag FILE: ../../../flutter/impeller/entity/shaders/geometry/points.comp FILE: ../../../flutter/impeller/entity/shaders/glyph_atlas.frag FILE: ../../../flutter/impeller/entity/shaders/glyph_atlas.vert diff --git a/impeller/tools/malioc.json b/impeller/tools/malioc.json index ac45ec39759f1..cc0bb1ade8fc1 100644 --- a/impeller/tools/malioc.json +++ b/impeller/tools/malioc.json @@ -257,118 +257,6 @@ } } }, - "flutter/impeller/entity/border_mask_blur.vert.vkspv": { - "Mali-G78": { - "core": "Mali-G78", - "filename": "flutter/impeller/entity/border_mask_blur.vert.vkspv", - "has_uniform_computation": true, - "type": "Vertex", - "variants": { - "Position": { - "fp16_arithmetic": 0, - "has_stack_spilling": false, - "performance": { - "longest_path_bound_pipelines": [ - "load_store" - ], - "longest_path_cycles": [ - 0.125, - 0.125, - 0.0, - 0.0, - 2.0, - 0.0 - ], - "pipelines": [ - "arith_total", - "arith_fma", - "arith_cvt", - "arith_sfu", - "load_store", - "texture" - ], - "shortest_path_bound_pipelines": [ - "load_store" - ], - "shortest_path_cycles": [ - 0.125, - 0.125, - 0.0, - 0.0, - 2.0, - 0.0 - ], - "total_bound_pipelines": [ - "load_store" - ], - "total_cycles": [ - 0.125, - 0.125, - 0.0, - 0.0, - 2.0, - 0.0 - ] - }, - "stack_spill_bytes": 0, - "thread_occupancy": 100, - "uniform_registers_used": 30, - "work_registers_used": 32 - }, - "Varying": { - "fp16_arithmetic": 0, - "has_stack_spilling": false, - "performance": { - "longest_path_bound_pipelines": [ - "load_store" - ], - "longest_path_cycles": [ - 0.015625, - 0.015625, - 0.015625, - 0.0, - 3.0, - 0.0 - ], - "pipelines": [ - "arith_total", - "arith_fma", - "arith_cvt", - "arith_sfu", - "load_store", - "texture" - ], - "shortest_path_bound_pipelines": [ - "load_store" - ], - "shortest_path_cycles": [ - 0.015625, - 0.015625, - 0.015625, - 0.0, - 3.0, - 0.0 - ], - "total_bound_pipelines": [ - "load_store" - ], - "total_cycles": [ - 0.015625, - 0.015625, - 0.015625, - 0.0, - 3.0, - 0.0 - ] - }, - "stack_spill_bytes": 0, - "thread_occupancy": 100, - "uniform_registers_used": 22, - "work_registers_used": 8 - } - } - } - }, "flutter/impeller/entity/checkerboard.frag.vkspv": { "Mali-G78": { "core": "Mali-G78", @@ -856,10 +744,10 @@ } } }, - "flutter/impeller/entity/filter.vert.vkspv": { + "flutter/impeller/entity/filter_position.vert.vkspv": { "Mali-G78": { "core": "Mali-G78", - "filename": "flutter/impeller/entity/filter.vert.vkspv", + "filename": "flutter/impeller/entity/filter_position.vert.vkspv", "has_uniform_computation": true, "type": "Vertex", "variants": { @@ -968,34 +856,27 @@ } } }, - "flutter/impeller/entity/gles/advanced_blend.frag.gles": { + "flutter/impeller/entity/filter_position_uv.vert.vkspv": { "Mali-G78": { "core": "Mali-G78", - "filename": "flutter/impeller/entity/gles/advanced_blend.frag.gles", - "has_side_effects": false, + "filename": "flutter/impeller/entity/filter_position_uv.vert.vkspv", "has_uniform_computation": true, - "modifies_coverage": false, - "reads_color_buffer": false, - "type": "Fragment", - "uses_late_zs_test": false, - "uses_late_zs_update": false, + "type": "Vertex", "variants": { - "Main": { - "fp16_arithmetic": 2, + "Position": { + "fp16_arithmetic": 0, "has_stack_spilling": false, "performance": { "longest_path_bound_pipelines": [ - "arith_total", - "arith_fma" + "load_store" ], "longest_path_cycles": [ - 0.578125, - 0.578125, - 0.265625, + 0.125, 0.125, 0.0, - 0.5, - 0.5 + 0.0, + 2.0, + 0.0 ], "pipelines": [ "arith_total", @@ -1003,110 +884,117 @@ "arith_cvt", "arith_sfu", "load_store", - "varying", "texture" ], "shortest_path_bound_pipelines": [ - "arith_total", - "arith_fma" + "load_store" ], "shortest_path_cycles": [ - 0.53125, - 0.53125, - 0.21875, - 0.0625, + 0.125, + 0.125, 0.0, - 0.25, - 0.25 + 0.0, + 2.0, + 0.0 ], "total_bound_pipelines": [ - "arith_total", - "arith_fma" + "load_store" ], "total_cycles": [ - 0.578125, - 0.578125, - 0.34375, + 0.125, 0.125, 0.0, - 0.5, - 0.5 + 0.0, + 2.0, + 0.0 ] }, "stack_spill_bytes": 0, "thread_occupancy": 100, - "uniform_registers_used": 14, - "work_registers_used": 23 - } - } - }, - "Mali-T880": { - "core": "Mali-T880", - "filename": "flutter/impeller/entity/gles/advanced_blend.frag.gles", - "has_uniform_computation": false, - "type": "Fragment", - "variants": { - "Main": { + "uniform_registers_used": 30, + "work_registers_used": 32 + }, + "Varying": { + "fp16_arithmetic": 0, "has_stack_spilling": false, "performance": { "longest_path_bound_pipelines": [ - "arithmetic" + "load_store" ], "longest_path_cycles": [ - 4.289999961853027, - 2.0, - 2.0 + 0.015625, + 0.015625, + 0.015625, + 0.0, + 3.0, + 0.0 ], "pipelines": [ - "arithmetic", + "arith_total", + "arith_fma", + "arith_cvt", + "arith_sfu", "load_store", "texture" ], "shortest_path_bound_pipelines": [ - "arithmetic" + "load_store" ], "shortest_path_cycles": [ - 3.299999952316284, - 1.0, - 1.0 + 0.015625, + 0.015625, + 0.015625, + 0.0, + 3.0, + 0.0 ], "total_bound_pipelines": [ - "arithmetic" + "load_store" ], "total_cycles": [ - 4.666666507720947, - 2.0, - 2.0 + 0.015625, + 0.015625, + 0.015625, + 0.0, + 3.0, + 0.0 ] }, + "stack_spill_bytes": 0, "thread_occupancy": 100, - "uniform_registers_used": 2, - "work_registers_used": 4 + "uniform_registers_used": 22, + "work_registers_used": 8 } } } }, - "flutter/impeller/entity/gles/advanced_blend.vert.gles": { + "flutter/impeller/entity/gaussian.frag.vkspv": { "Mali-G78": { "core": "Mali-G78", - "filename": "flutter/impeller/entity/gles/advanced_blend.vert.gles", + "filename": "flutter/impeller/entity/gaussian.frag.vkspv", + "has_side_effects": false, "has_uniform_computation": true, - "type": "Vertex", + "modifies_coverage": false, + "reads_color_buffer": false, + "type": "Fragment", + "uses_late_zs_test": false, + "uses_late_zs_update": false, "variants": { - "Position": { + "Main": { "fp16_arithmetic": 0, "has_stack_spilling": false, "performance": { "longest_path_bound_pipelines": [ - "load_store" + null ], "longest_path_cycles": [ - 0.140625, - 0.140625, - 0.0, - 0.0, - 2.0, - 0.0 + null, + null, + null, + null, + null, + null, + null ], "pipelines": [ "arith_total", @@ -1114,14 +1002,197 @@ "arith_cvt", "arith_sfu", "load_store", + "varying", "texture" ], "shortest_path_bound_pipelines": [ - "load_store" + "arith_total", + "arith_cvt" ], "shortest_path_cycles": [ - 0.140625, - 0.140625, + 0.125, + 0.0, + 0.125, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "total_bound_pipelines": [ + "load_store" + ], + "total_cycles": [ + 0.265625, + 0.09375, + 0.265625, + 0.0, + 1.0, + 0.25, + 0.25 + ] + }, + "stack_spill_bytes": 0, + "thread_occupancy": 100, + "uniform_registers_used": 4, + "work_registers_used": 13 + } + } + } + }, + "flutter/impeller/entity/gles/advanced_blend.frag.gles": { + "Mali-G78": { + "core": "Mali-G78", + "filename": "flutter/impeller/entity/gles/advanced_blend.frag.gles", + "has_side_effects": false, + "has_uniform_computation": true, + "modifies_coverage": false, + "reads_color_buffer": false, + "type": "Fragment", + "uses_late_zs_test": false, + "uses_late_zs_update": false, + "variants": { + "Main": { + "fp16_arithmetic": 2, + "has_stack_spilling": false, + "performance": { + "longest_path_bound_pipelines": [ + "arith_total", + "arith_fma" + ], + "longest_path_cycles": [ + 0.578125, + 0.578125, + 0.265625, + 0.125, + 0.0, + 0.5, + 0.5 + ], + "pipelines": [ + "arith_total", + "arith_fma", + "arith_cvt", + "arith_sfu", + "load_store", + "varying", + "texture" + ], + "shortest_path_bound_pipelines": [ + "arith_total", + "arith_fma" + ], + "shortest_path_cycles": [ + 0.53125, + 0.53125, + 0.21875, + 0.0625, + 0.0, + 0.25, + 0.25 + ], + "total_bound_pipelines": [ + "arith_total", + "arith_fma" + ], + "total_cycles": [ + 0.578125, + 0.578125, + 0.34375, + 0.125, + 0.0, + 0.5, + 0.5 + ] + }, + "stack_spill_bytes": 0, + "thread_occupancy": 100, + "uniform_registers_used": 14, + "work_registers_used": 23 + } + } + }, + "Mali-T880": { + "core": "Mali-T880", + "filename": "flutter/impeller/entity/gles/advanced_blend.frag.gles", + "has_uniform_computation": false, + "type": "Fragment", + "variants": { + "Main": { + "has_stack_spilling": false, + "performance": { + "longest_path_bound_pipelines": [ + "arithmetic" + ], + "longest_path_cycles": [ + 4.289999961853027, + 2.0, + 2.0 + ], + "pipelines": [ + "arithmetic", + "load_store", + "texture" + ], + "shortest_path_bound_pipelines": [ + "arithmetic" + ], + "shortest_path_cycles": [ + 3.299999952316284, + 1.0, + 1.0 + ], + "total_bound_pipelines": [ + "arithmetic" + ], + "total_cycles": [ + 4.666666507720947, + 2.0, + 2.0 + ] + }, + "thread_occupancy": 100, + "uniform_registers_used": 2, + "work_registers_used": 4 + } + } + } + }, + "flutter/impeller/entity/gles/advanced_blend.vert.gles": { + "Mali-G78": { + "core": "Mali-G78", + "filename": "flutter/impeller/entity/gles/advanced_blend.vert.gles", + "has_uniform_computation": true, + "type": "Vertex", + "variants": { + "Position": { + "fp16_arithmetic": 0, + "has_stack_spilling": false, + "performance": { + "longest_path_bound_pipelines": [ + "load_store" + ], + "longest_path_cycles": [ + 0.140625, + 0.140625, + 0.0, + 0.0, + 2.0, + 0.0 + ], + "pipelines": [ + "arith_total", + "arith_fma", + "arith_cvt", + "arith_sfu", + "load_store", + "texture" + ], + "shortest_path_bound_pipelines": [ + "load_store" + ], + "shortest_path_cycles": [ + 0.140625, + 0.140625, 0.0, 0.0, 2.0, @@ -1361,26 +1432,32 @@ } } }, - "flutter/impeller/entity/gles/border_mask_blur.vert.gles": { + "flutter/impeller/entity/gles/checkerboard.frag.gles": { "Mali-G78": { "core": "Mali-G78", - "filename": "flutter/impeller/entity/gles/border_mask_blur.vert.gles", + "filename": "flutter/impeller/entity/gles/checkerboard.frag.gles", + "has_side_effects": false, "has_uniform_computation": true, - "type": "Vertex", + "modifies_coverage": false, + "reads_color_buffer": false, + "type": "Fragment", + "uses_late_zs_test": false, + "uses_late_zs_update": false, "variants": { - "Position": { - "fp16_arithmetic": 0, + "Main": { + "fp16_arithmetic": 27, "has_stack_spilling": false, "performance": { "longest_path_bound_pipelines": [ "load_store" ], "longest_path_cycles": [ - 0.140625, - 0.140625, - 0.0, + 0.234375, + 0.234375, + 0.171875, + 0.0625, + 1.0, 0.0, - 2.0, 0.0 ], "pipelines": [ @@ -1389,228 +1466,65 @@ "arith_cvt", "arith_sfu", "load_store", + "varying", "texture" ], "shortest_path_bound_pipelines": [ "load_store" ], "shortest_path_cycles": [ + 0.234375, + 0.234375, 0.140625, - 0.140625, - 0.0, + 0.0625, + 1.0, 0.0, - 2.0, 0.0 ], "total_bound_pipelines": [ "load_store" ], "total_cycles": [ - 0.140625, - 0.140625, - 0.0, + 0.234375, + 0.234375, + 0.171875, + 0.0625, + 1.0, 0.0, - 2.0, 0.0 ] }, "stack_spill_bytes": 0, "thread_occupancy": 100, - "uniform_registers_used": 22, - "work_registers_used": 32 - }, - "Varying": { - "fp16_arithmetic": 0, + "uniform_registers_used": 12, + "work_registers_used": 21 + } + } + }, + "Mali-T880": { + "core": "Mali-T880", + "filename": "flutter/impeller/entity/gles/checkerboard.frag.gles", + "has_uniform_computation": false, + "type": "Fragment", + "variants": { + "Main": { "has_stack_spilling": false, "performance": { "longest_path_bound_pipelines": [ - "load_store" + "arithmetic" ], "longest_path_cycles": [ - 0.015625, - 0.015625, - 0.015625, - 0.0, - 3.0, + 1.9800000190734863, + 1.0, 0.0 ], "pipelines": [ - "arith_total", - "arith_fma", - "arith_cvt", - "arith_sfu", + "arithmetic", "load_store", "texture" ], "shortest_path_bound_pipelines": [ - "load_store" - ], - "shortest_path_cycles": [ - 0.015625, - 0.015625, - 0.015625, - 0.0, - 3.0, - 0.0 - ], - "total_bound_pipelines": [ - "load_store" - ], - "total_cycles": [ - 0.015625, - 0.015625, - 0.015625, - 0.0, - 3.0, - 0.0 - ] - }, - "stack_spill_bytes": 0, - "thread_occupancy": 100, - "uniform_registers_used": 10, - "work_registers_used": 8 - } - } - }, - "Mali-T880": { - "core": "Mali-T880", - "filename": "flutter/impeller/entity/gles/border_mask_blur.vert.gles", - "has_uniform_computation": false, - "type": "Vertex", - "variants": { - "Main": { - "has_stack_spilling": false, - "performance": { - "longest_path_bound_pipelines": [ - "load_store" - ], - "longest_path_cycles": [ - 2.9700000286102295, - 5.0, - 0.0 - ], - "pipelines": [ - "arithmetic", - "load_store", - "texture" - ], - "shortest_path_bound_pipelines": [ - "load_store" - ], - "shortest_path_cycles": [ - 2.9700000286102295, - 5.0, - 0.0 - ], - "total_bound_pipelines": [ - "load_store" - ], - "total_cycles": [ - 3.0, - 5.0, - 0.0 - ] - }, - "thread_occupancy": 100, - "uniform_registers_used": 6, - "work_registers_used": 2 - } - } - } - }, - "flutter/impeller/entity/gles/checkerboard.frag.gles": { - "Mali-G78": { - "core": "Mali-G78", - "filename": "flutter/impeller/entity/gles/checkerboard.frag.gles", - "has_side_effects": false, - "has_uniform_computation": true, - "modifies_coverage": false, - "reads_color_buffer": false, - "type": "Fragment", - "uses_late_zs_test": false, - "uses_late_zs_update": false, - "variants": { - "Main": { - "fp16_arithmetic": 27, - "has_stack_spilling": false, - "performance": { - "longest_path_bound_pipelines": [ - "load_store" - ], - "longest_path_cycles": [ - 0.234375, - 0.234375, - 0.171875, - 0.0625, - 1.0, - 0.0, - 0.0 - ], - "pipelines": [ - "arith_total", - "arith_fma", - "arith_cvt", - "arith_sfu", - "load_store", - "varying", - "texture" - ], - "shortest_path_bound_pipelines": [ - "load_store" - ], - "shortest_path_cycles": [ - 0.234375, - 0.234375, - 0.140625, - 0.0625, - 1.0, - 0.0, - 0.0 - ], - "total_bound_pipelines": [ - "load_store" - ], - "total_cycles": [ - 0.234375, - 0.234375, - 0.171875, - 0.0625, - 1.0, - 0.0, - 0.0 - ] - }, - "stack_spill_bytes": 0, - "thread_occupancy": 100, - "uniform_registers_used": 12, - "work_registers_used": 21 - } - } - }, - "Mali-T880": { - "core": "Mali-T880", - "filename": "flutter/impeller/entity/gles/checkerboard.frag.gles", - "has_uniform_computation": false, - "type": "Fragment", - "variants": { - "Main": { - "has_stack_spilling": false, - "performance": { - "longest_path_bound_pipelines": [ - "arithmetic" - ], - "longest_path_cycles": [ - 1.9800000190734863, - 1.0, - 0.0 - ], - "pipelines": [ - "arithmetic", - "load_store", - "texture" - ], - "shortest_path_bound_pipelines": [ - "arithmetic" + "arithmetic" ], "shortest_path_cycles": [ 1.9800000190734863, @@ -2204,10 +2118,10 @@ } } }, - "flutter/impeller/entity/gles/filter.vert.gles": { + "flutter/impeller/entity/gles/filter_position.vert.gles": { "Mali-G78": { "core": "Mali-G78", - "filename": "flutter/impeller/entity/gles/filter.vert.gles", + "filename": "flutter/impeller/entity/gles/filter_position.vert.gles", "has_uniform_computation": true, "type": "Vertex", "variants": { @@ -2317,7 +2231,7 @@ }, "Mali-T880": { "core": "Mali-T880", - "filename": "flutter/impeller/entity/gles/filter.vert.gles", + "filename": "flutter/impeller/entity/gles/filter_position.vert.gles", "has_uniform_computation": false, "type": "Vertex", "variants": { @@ -2361,33 +2275,27 @@ } } }, - "flutter/impeller/entity/gles/glyph_atlas.frag.gles": { + "flutter/impeller/entity/gles/filter_position_uv.vert.gles": { "Mali-G78": { "core": "Mali-G78", - "filename": "flutter/impeller/entity/gles/glyph_atlas.frag.gles", - "has_side_effects": false, - "has_uniform_computation": false, - "modifies_coverage": false, - "reads_color_buffer": false, - "type": "Fragment", - "uses_late_zs_test": false, - "uses_late_zs_update": false, + "filename": "flutter/impeller/entity/gles/filter_position_uv.vert.gles", + "has_uniform_computation": true, + "type": "Vertex", "variants": { - "Main": { - "fp16_arithmetic": 100, + "Position": { + "fp16_arithmetic": 0, "has_stack_spilling": false, "performance": { "longest_path_bound_pipelines": [ - "varying" + "load_store" ], "longest_path_cycles": [ - 0.03125, - 0.03125, - 0.03125, + 0.140625, + 0.140625, 0.0, 0.0, - 0.5, - 0.25 + 2.0, + 0.0 ], "pipelines": [ "arith_total", @@ -2395,119 +2303,108 @@ "arith_cvt", "arith_sfu", "load_store", - "varying", "texture" ], "shortest_path_bound_pipelines": [ - "varying" + "load_store" ], "shortest_path_cycles": [ - 0.03125, - 0.03125, - 0.0, + 0.140625, + 0.140625, 0.0, 0.0, - 0.5, - 0.25 + 2.0, + 0.0 ], "total_bound_pipelines": [ - "varying" + "load_store" ], "total_cycles": [ - 0.03125, - 0.03125, - 0.03125, + 0.140625, + 0.140625, 0.0, 0.0, - 0.5, - 0.25 + 2.0, + 0.0 ] }, "stack_spill_bytes": 0, "thread_occupancy": 100, - "uniform_registers_used": 4, - "work_registers_used": 19 - } - } - }, - "Mali-T880": { - "core": "Mali-T880", - "filename": "flutter/impeller/entity/gles/glyph_atlas.frag.gles", - "has_uniform_computation": false, - "type": "Fragment", - "variants": { - "Main": { + "uniform_registers_used": 22, + "work_registers_used": 32 + }, + "Varying": { + "fp16_arithmetic": 0, "has_stack_spilling": false, "performance": { "longest_path_bound_pipelines": [ - "arithmetic", - "load_store", - "texture" + "load_store" ], "longest_path_cycles": [ - 1.0, - 1.0, - 1.0 + 0.015625, + 0.015625, + 0.015625, + 0.0, + 3.0, + 0.0 ], "pipelines": [ - "arithmetic", + "arith_total", + "arith_fma", + "arith_cvt", + "arith_sfu", "load_store", "texture" ], "shortest_path_bound_pipelines": [ - "arithmetic", - "load_store", - "texture" + "load_store" ], "shortest_path_cycles": [ - 1.0, - 1.0, - 1.0 - ], - "total_bound_pipelines": [ - "load_store", - "texture" + 0.015625, + 0.015625, + 0.015625, + 0.0, + 3.0, + 0.0 + ], + "total_bound_pipelines": [ + "load_store" ], "total_cycles": [ - 0.6666666865348816, - 1.0, - 1.0 + 0.015625, + 0.015625, + 0.015625, + 0.0, + 3.0, + 0.0 ] }, + "stack_spill_bytes": 0, "thread_occupancy": 100, - "uniform_registers_used": 0, - "work_registers_used": 2 + "uniform_registers_used": 10, + "work_registers_used": 8 } } - } - }, - "flutter/impeller/entity/gles/glyph_atlas.vert.gles": { - "Mali-G78": { - "core": "Mali-G78", - "filename": "flutter/impeller/entity/gles/glyph_atlas.vert.gles", - "has_uniform_computation": true, + }, + "Mali-T880": { + "core": "Mali-T880", + "filename": "flutter/impeller/entity/gles/filter_position_uv.vert.gles", + "has_uniform_computation": false, "type": "Vertex", "variants": { - "Position": { - "fp16_arithmetic": 0, + "Main": { "has_stack_spilling": false, "performance": { "longest_path_bound_pipelines": [ "load_store" ], "longest_path_cycles": [ - 0.515625, - 0.515625, - 0.140625, - 0.0, - 4.0, + 2.9700000286102295, + 5.0, 0.0 ], "pipelines": [ - "arith_total", - "arith_fma", - "arith_cvt", - "arith_sfu", + "arithmetic", "load_store", "texture" ], @@ -2515,44 +2412,53 @@ "load_store" ], "shortest_path_cycles": [ - 0.484375, - 0.484375, - 0.03125, - 0.0, - 4.0, + 2.9700000286102295, + 5.0, 0.0 ], "total_bound_pipelines": [ "load_store" ], "total_cycles": [ - 0.737500011920929, - 0.737500011920929, - 0.15625, - 0.0, - 4.0, + 3.0, + 5.0, 0.0 ] }, - "stack_spill_bytes": 0, "thread_occupancy": 100, - "uniform_registers_used": 46, - "work_registers_used": 32 - }, - "Varying": { + "uniform_registers_used": 6, + "work_registers_used": 2 + } + } + } + }, + "flutter/impeller/entity/gles/gaussian.frag.gles": { + "Mali-G78": { + "core": "Mali-G78", + "filename": "flutter/impeller/entity/gles/gaussian.frag.gles", + "has_side_effects": false, + "has_uniform_computation": true, + "modifies_coverage": false, + "reads_color_buffer": false, + "type": "Fragment", + "uses_late_zs_test": false, + "uses_late_zs_update": false, + "variants": { + "Main": { "fp16_arithmetic": 0, "has_stack_spilling": false, "performance": { "longest_path_bound_pipelines": [ - "load_store" + null ], "longest_path_cycles": [ - 0.15625, - 0.15625, - 0.03125, - 0.0, - 4.0, - 0.0 + null, + null, + null, + null, + null, + null, + null ], "pipelines": [ "arith_total", @@ -2560,54 +2466,58 @@ "arith_cvt", "arith_sfu", "load_store", + "varying", "texture" ], "shortest_path_bound_pipelines": [ - "load_store" + "arith_total", + "arith_cvt" ], "shortest_path_cycles": [ - 0.15625, - 0.15625, - 0.03125, + 0.109375, + 0.0, + 0.109375, + 0.0, + 0.0, 0.0, - 4.0, 0.0 ], "total_bound_pipelines": [ "load_store" ], "total_cycles": [ - 0.15625, - 0.15625, - 0.03125, + 0.3125, + 0.09375, + 0.3125, 0.0, - 4.0, - 0.0 + 2.0, + 0.25, + 0.25 ] }, "stack_spill_bytes": 0, "thread_occupancy": 100, - "uniform_registers_used": 16, - "work_registers_used": 11 + "uniform_registers_used": 4, + "work_registers_used": 19 } } }, "Mali-T880": { "core": "Mali-T880", - "filename": "flutter/impeller/entity/gles/glyph_atlas.vert.gles", - "has_uniform_computation": true, - "type": "Vertex", + "filename": "flutter/impeller/entity/gles/gaussian.frag.gles", + "has_uniform_computation": false, + "type": "Fragment", "variants": { "Main": { "has_stack_spilling": false, "performance": { "longest_path_bound_pipelines": [ - "load_store" + null ], "longest_path_cycles": [ - 6.929999828338623, - 8.0, - 0.0 + null, + null, + null ], "pipelines": [ "arithmetic", @@ -2615,35 +2525,36 @@ "texture" ], "shortest_path_bound_pipelines": [ + "arithmetic", "load_store" ], "shortest_path_cycles": [ - 5.940000057220459, - 8.0, + 1.0, + 1.0, 0.0 ], "total_bound_pipelines": [ - "arithmetic" + "load_store" ], "total_cycles": [ - 9.0, - 8.0, - 0.0 + 1.6666666269302368, + 2.0, + 1.0 ] }, "thread_occupancy": 100, - "uniform_registers_used": 12, + "uniform_registers_used": 1, "work_registers_used": 3 } } } }, - "flutter/impeller/entity/gles/glyph_atlas_color.frag.gles": { + "flutter/impeller/entity/gles/glyph_atlas.frag.gles": { "Mali-G78": { "core": "Mali-G78", - "filename": "flutter/impeller/entity/gles/glyph_atlas_color.frag.gles", + "filename": "flutter/impeller/entity/gles/glyph_atlas.frag.gles", "has_side_effects": false, - "has_uniform_computation": true, + "has_uniform_computation": false, "modifies_coverage": false, "reads_color_buffer": false, "type": "Fragment", @@ -2658,9 +2569,9 @@ "varying" ], "longest_path_cycles": [ - 0.0625, - 0.0625, - 0.0625, + 0.03125, + 0.03125, + 0.03125, 0.0, 0.0, 0.5, @@ -2679,11 +2590,11 @@ "varying" ], "shortest_path_cycles": [ - 0.0625, - 0.0625, + 0.03125, 0.03125, 0.0, 0.0, + 0.0, 0.5, 0.25 ], @@ -2691,9 +2602,9 @@ "varying" ], "total_cycles": [ - 0.0625, - 0.0625, - 0.0625, + 0.03125, + 0.03125, + 0.03125, 0.0, 0.0, 0.5, @@ -2709,7 +2620,7 @@ }, "Mali-T880": { "core": "Mali-T880", - "filename": "flutter/impeller/entity/gles/glyph_atlas_color.frag.gles", + "filename": "flutter/impeller/entity/gles/glyph_atlas.frag.gles", "has_uniform_computation": false, "type": "Fragment", "variants": { @@ -2742,26 +2653,27 @@ 1.0 ], "total_bound_pipelines": [ - "arithmetic" + "load_store", + "texture" ], "total_cycles": [ - 1.3333333730697632, + 0.6666666865348816, 1.0, 1.0 ] }, "thread_occupancy": 100, - "uniform_registers_used": 1, + "uniform_registers_used": 0, "work_registers_used": 2 } } } }, - "flutter/impeller/entity/gles/gradient_fill.vert.gles": { + "flutter/impeller/entity/gles/glyph_atlas.vert.gles": { "Mali-G78": { "core": "Mali-G78", - "filename": "flutter/impeller/entity/gles/gradient_fill.vert.gles", - "has_uniform_computation": false, + "filename": "flutter/impeller/entity/gles/glyph_atlas.vert.gles", + "has_uniform_computation": true, "type": "Vertex", "variants": { "Position": { @@ -2772,11 +2684,11 @@ "load_store" ], "longest_path_cycles": [ + 0.515625, + 0.515625, 0.140625, - 0.140625, - 0.0, 0.0, - 2.0, + 4.0, 0.0 ], "pipelines": [ @@ -2791,28 +2703,28 @@ "load_store" ], "shortest_path_cycles": [ - 0.140625, - 0.140625, - 0.0, + 0.484375, + 0.484375, + 0.03125, 0.0, - 2.0, + 4.0, 0.0 ], "total_bound_pipelines": [ "load_store" ], "total_cycles": [ - 0.140625, - 0.140625, - 0.0, + 0.737500011920929, + 0.737500011920929, + 0.15625, 0.0, - 2.0, + 4.0, 0.0 ] }, "stack_spill_bytes": 0, "thread_occupancy": 100, - "uniform_registers_used": 30, + "uniform_registers_used": 46, "work_registers_used": 32 }, "Varying": { @@ -2823,11 +2735,11 @@ "load_store" ], "longest_path_cycles": [ - 0.125, - 0.125, + 0.15625, + 0.15625, + 0.03125, 0.0, - 0.0625, - 3.0, + 4.0, 0.0 ], "pipelines": [ @@ -2842,36 +2754,36 @@ "load_store" ], "shortest_path_cycles": [ - 0.125, - 0.125, + 0.15625, + 0.15625, + 0.03125, 0.0, - 0.0625, - 3.0, + 4.0, 0.0 ], "total_bound_pipelines": [ "load_store" ], "total_cycles": [ - 0.125, - 0.125, + 0.15625, + 0.15625, + 0.03125, 0.0, - 0.0625, - 3.0, + 4.0, 0.0 ] }, "stack_spill_bytes": 0, "thread_occupancy": 100, - "uniform_registers_used": 18, + "uniform_registers_used": 16, "work_registers_used": 11 } } }, "Mali-T880": { "core": "Mali-T880", - "filename": "flutter/impeller/entity/gles/gradient_fill.vert.gles", - "has_uniform_computation": false, + "filename": "flutter/impeller/entity/gles/glyph_atlas.vert.gles", + "has_uniform_computation": true, "type": "Vertex", "variants": { "Main": { @@ -2881,8 +2793,8 @@ "load_store" ], "longest_path_cycles": [ - 3.299999952316284, - 4.0, + 6.929999828338623, + 8.0, 0.0 ], "pipelines": [ @@ -2894,47 +2806,53 @@ "load_store" ], "shortest_path_cycles": [ - 3.299999952316284, - 4.0, + 5.940000057220459, + 8.0, 0.0 ], "total_bound_pipelines": [ - "load_store" + "arithmetic" ], "total_cycles": [ - 3.3333332538604736, - 4.0, + 9.0, + 8.0, 0.0 ] }, "thread_occupancy": 100, - "uniform_registers_used": 8, - "work_registers_used": 2 + "uniform_registers_used": 12, + "work_registers_used": 3 } } } }, - "flutter/impeller/entity/gles/kernel.vert.gles": { + "flutter/impeller/entity/gles/glyph_atlas_color.frag.gles": { "Mali-G78": { "core": "Mali-G78", - "filename": "flutter/impeller/entity/gles/kernel.vert.gles", + "filename": "flutter/impeller/entity/gles/glyph_atlas_color.frag.gles", + "has_side_effects": false, "has_uniform_computation": true, - "type": "Vertex", + "modifies_coverage": false, + "reads_color_buffer": false, + "type": "Fragment", + "uses_late_zs_test": false, + "uses_late_zs_update": false, "variants": { - "Position": { - "fp16_arithmetic": 0, + "Main": { + "fp16_arithmetic": 100, "has_stack_spilling": false, "performance": { "longest_path_bound_pipelines": [ - "load_store" + "varying" ], "longest_path_cycles": [ - 0.140625, - 0.140625, + 0.0625, + 0.0625, + 0.0625, 0.0, 0.0, - 2.0, - 0.0 + 0.5, + 0.25 ], "pipelines": [ "arith_total", @@ -2942,105 +2860,59 @@ "arith_cvt", "arith_sfu", "load_store", + "varying", "texture" ], "shortest_path_bound_pipelines": [ - "load_store" + "varying" ], "shortest_path_cycles": [ - 0.140625, - 0.140625, + 0.0625, + 0.0625, + 0.03125, 0.0, 0.0, - 2.0, - 0.0 + 0.5, + 0.25 ], "total_bound_pipelines": [ - "load_store" + "varying" ], "total_cycles": [ - 0.140625, - 0.140625, - 0.0, - 0.0, - 2.0, - 0.0 - ] - }, - "stack_spill_bytes": 0, - "thread_occupancy": 100, - "uniform_registers_used": 22, - "work_registers_used": 32 - }, - "Varying": { - "fp16_arithmetic": 0, - "has_stack_spilling": false, - "performance": { - "longest_path_bound_pipelines": [ - "load_store" - ], - "longest_path_cycles": [ - 0.015625, - 0.015625, - 0.015625, - 0.0, - 3.0, - 0.0 - ], - "pipelines": [ - "arith_total", - "arith_fma", - "arith_cvt", - "arith_sfu", - "load_store", - "texture" - ], - "shortest_path_bound_pipelines": [ - "load_store" - ], - "shortest_path_cycles": [ - 0.015625, - 0.015625, - 0.015625, + 0.0625, + 0.0625, + 0.0625, 0.0, - 3.0, - 0.0 - ], - "total_bound_pipelines": [ - "load_store" - ], - "total_cycles": [ - 0.015625, - 0.015625, - 0.015625, 0.0, - 3.0, - 0.0 + 0.5, + 0.25 ] }, "stack_spill_bytes": 0, "thread_occupancy": 100, - "uniform_registers_used": 10, - "work_registers_used": 8 + "uniform_registers_used": 4, + "work_registers_used": 19 } } }, "Mali-T880": { "core": "Mali-T880", - "filename": "flutter/impeller/entity/gles/kernel.vert.gles", + "filename": "flutter/impeller/entity/gles/glyph_atlas_color.frag.gles", "has_uniform_computation": false, - "type": "Vertex", + "type": "Fragment", "variants": { "Main": { "has_stack_spilling": false, "performance": { "longest_path_bound_pipelines": [ - "load_store" + "arithmetic", + "load_store", + "texture" ], "longest_path_cycles": [ - 2.9700000286102295, - 5.0, - 0.0 + 1.0, + 1.0, + 1.0 ], "pipelines": [ "arithmetic", @@ -3048,56 +2920,52 @@ "texture" ], "shortest_path_bound_pipelines": [ - "load_store" + "arithmetic", + "load_store", + "texture" ], "shortest_path_cycles": [ - 2.9700000286102295, - 5.0, - 0.0 + 1.0, + 1.0, + 1.0 ], "total_bound_pipelines": [ - "load_store" + "arithmetic" ], "total_cycles": [ - 3.0, - 5.0, - 0.0 + 1.3333333730697632, + 1.0, + 1.0 ] }, "thread_occupancy": 100, - "uniform_registers_used": 6, + "uniform_registers_used": 1, "work_registers_used": 2 } } } }, - "flutter/impeller/entity/gles/kernel_decal.frag.gles": { + "flutter/impeller/entity/gles/gradient_fill.vert.gles": { "Mali-G78": { "core": "Mali-G78", - "filename": "flutter/impeller/entity/gles/kernel_decal.frag.gles", - "has_side_effects": false, - "has_uniform_computation": true, - "modifies_coverage": false, - "reads_color_buffer": false, - "type": "Fragment", - "uses_late_zs_test": false, - "uses_late_zs_update": false, + "filename": "flutter/impeller/entity/gles/gradient_fill.vert.gles", + "has_uniform_computation": false, + "type": "Vertex", "variants": { - "Main": { - "fp16_arithmetic": 66, + "Position": { + "fp16_arithmetic": 0, "has_stack_spilling": false, "performance": { "longest_path_bound_pipelines": [ - null + "load_store" ], "longest_path_cycles": [ - null, - null, - null, - null, - null, - null, - null + 0.140625, + 0.140625, + 0.0, + 0.0, + 2.0, + 0.0 ], "pipelines": [ "arith_total", @@ -3105,116 +2973,50 @@ "arith_cvt", "arith_sfu", "load_store", - "varying", "texture" ], "shortest_path_bound_pipelines": [ - "arith_total", - "arith_cvt" + "load_store" ], "shortest_path_cycles": [ - 0.078125, - 0.0, - 0.078125, - 0.0, + 0.140625, + 0.140625, 0.0, 0.0, + 2.0, 0.0 ], "total_bound_pipelines": [ "load_store" ], "total_cycles": [ - 0.359375, - 0.0625, - 0.359375, - 0.1875, + 0.140625, + 0.140625, + 0.0, + 0.0, 2.0, - 0.25, - 0.25 - ] - }, - "stack_spill_bytes": 0, - "thread_occupancy": 100, - "uniform_registers_used": 4, - "work_registers_used": 19 - } - } - }, - "Mali-T880": { - "core": "Mali-T880", - "filename": "flutter/impeller/entity/gles/kernel_decal.frag.gles", - "has_uniform_computation": false, - "type": "Fragment", - "variants": { - "Main": { - "has_stack_spilling": false, - "performance": { - "longest_path_bound_pipelines": [ - null - ], - "longest_path_cycles": [ - null, - null, - null - ], - "pipelines": [ - "arithmetic", - "load_store", - "texture" - ], - "shortest_path_bound_pipelines": [ - "arithmetic", - "load_store" - ], - "shortest_path_cycles": [ - 1.0, - 1.0, 0.0 - ], - "total_bound_pipelines": [ - "arithmetic" - ], - "total_cycles": [ - 3.6666667461395264, - 3.0, - 1.0 ] }, + "stack_spill_bytes": 0, "thread_occupancy": 100, - "uniform_registers_used": 1, - "work_registers_used": 3 - } - } - } - }, - "flutter/impeller/entity/gles/kernel_nodecal.frag.gles": { - "Mali-G78": { - "core": "Mali-G78", - "filename": "flutter/impeller/entity/gles/kernel_nodecal.frag.gles", - "has_side_effects": false, - "has_uniform_computation": true, - "modifies_coverage": false, - "reads_color_buffer": false, - "type": "Fragment", - "uses_late_zs_test": false, - "uses_late_zs_update": false, - "variants": { - "Main": { - "fp16_arithmetic": 50, + "uniform_registers_used": 30, + "work_registers_used": 32 + }, + "Varying": { + "fp16_arithmetic": 0, "has_stack_spilling": false, "performance": { "longest_path_bound_pipelines": [ - null + "load_store" ], "longest_path_cycles": [ - null, - null, - null, - null, - null, - null, - null + 0.125, + 0.125, + 0.0, + 0.0625, + 3.0, + 0.0 ], "pipelines": [ "arith_total", @@ -3222,58 +3024,54 @@ "arith_cvt", "arith_sfu", "load_store", - "varying", "texture" ], "shortest_path_bound_pipelines": [ - "arith_total", - "arith_cvt" + "load_store" ], "shortest_path_cycles": [ - 0.078125, - 0.0, - 0.078125, - 0.0, - 0.0, + 0.125, + 0.125, 0.0, + 0.0625, + 3.0, 0.0 ], "total_bound_pipelines": [ "load_store" ], "total_cycles": [ - 0.25, - 0.0625, - 0.25, + 0.125, + 0.125, 0.0, - 2.0, - 0.25, - 0.25 + 0.0625, + 3.0, + 0.0 ] }, "stack_spill_bytes": 0, "thread_occupancy": 100, - "uniform_registers_used": 4, - "work_registers_used": 19 + "uniform_registers_used": 18, + "work_registers_used": 11 } } }, "Mali-T880": { "core": "Mali-T880", - "filename": "flutter/impeller/entity/gles/kernel_nodecal.frag.gles", + "filename": "flutter/impeller/entity/gles/gradient_fill.vert.gles", "has_uniform_computation": false, - "type": "Fragment", + "type": "Vertex", "variants": { "Main": { "has_stack_spilling": false, "performance": { "longest_path_bound_pipelines": [ - null + "load_store" ], "longest_path_cycles": [ - null, - null, - null + 3.299999952316284, + 4.0, + 0.0 ], "pipelines": [ "arithmetic", @@ -3281,26 +3079,25 @@ "texture" ], "shortest_path_bound_pipelines": [ - "arithmetic", "load_store" ], "shortest_path_cycles": [ - 1.0, - 1.0, + 3.299999952316284, + 4.0, 0.0 ], "total_bound_pipelines": [ - "arithmetic" + "load_store" ], "total_cycles": [ - 2.3333332538604736, - 2.0, - 1.0 + 3.3333332538604736, + 4.0, + 0.0 ] }, "thread_occupancy": 100, - "uniform_registers_used": 1, - "work_registers_used": 3 + "uniform_registers_used": 8, + "work_registers_used": 2 } } } @@ -3532,206 +3329,43 @@ "total_cycles": [ 5.333333492279053, 1.0, - 1.0 - ] - }, - "thread_occupancy": 100, - "uniform_registers_used": 1, - "work_registers_used": 2 - } - } - } - }, - "flutter/impeller/entity/gles/morphology_filter.frag.gles": { - "Mali-G78": { - "core": "Mali-G78", - "filename": "flutter/impeller/entity/gles/morphology_filter.frag.gles", - "has_side_effects": false, - "has_uniform_computation": true, - "modifies_coverage": false, - "reads_color_buffer": false, - "type": "Fragment", - "uses_late_zs_test": false, - "uses_late_zs_update": false, - "variants": { - "Main": { - "fp16_arithmetic": 80, - "has_stack_spilling": false, - "performance": { - "longest_path_bound_pipelines": [ - null - ], - "longest_path_cycles": [ - null, - null, - null, - null, - null, - null, - null - ], - "pipelines": [ - "arith_total", - "arith_fma", - "arith_cvt", - "arith_sfu", - "load_store", - "varying", - "texture" - ], - "shortest_path_bound_pipelines": [ - "arith_total", - "arith_cvt" - ], - "shortest_path_cycles": [ - 0.0625, - 0.0, - 0.0625, - 0.0, - 0.0, - 0.0, - 0.0 - ], - "total_bound_pipelines": [ - "varying", - "texture" - ], - "total_cycles": [ - 0.234375, - 0.078125, - 0.234375, - 0.0, - 0.0, - 0.25, - 0.25 - ] - }, - "stack_spill_bytes": 0, - "thread_occupancy": 100, - "uniform_registers_used": 8, - "work_registers_used": 21 - } - } - }, - "Mali-T880": { - "core": "Mali-T880", - "filename": "flutter/impeller/entity/gles/morphology_filter.frag.gles", - "has_uniform_computation": false, - "type": "Fragment", - "variants": { - "Main": { - "has_stack_spilling": false, - "performance": { - "longest_path_bound_pipelines": [ - null - ], - "longest_path_cycles": [ - null, - null, - null - ], - "pipelines": [ - "arithmetic", - "load_store", - "texture" - ], - "shortest_path_bound_pipelines": [ - "arithmetic", - "load_store" - ], - "shortest_path_cycles": [ - 1.0, - 1.0, - 0.0 - ], - "total_bound_pipelines": [ - "arithmetic" - ], - "total_cycles": [ - 2.6666667461395264, - 1.0, - 1.0 - ] - }, - "thread_occupancy": 100, - "uniform_registers_used": 1, - "work_registers_used": 4 - } - } - } - }, - "flutter/impeller/entity/gles/morphology_filter.vert.gles": { - "Mali-G78": { - "core": "Mali-G78", - "filename": "flutter/impeller/entity/gles/morphology_filter.vert.gles", - "has_uniform_computation": true, - "type": "Vertex", - "variants": { - "Position": { - "fp16_arithmetic": 0, - "has_stack_spilling": false, - "performance": { - "longest_path_bound_pipelines": [ - "load_store" - ], - "longest_path_cycles": [ - 0.140625, - 0.140625, - 0.0, - 0.0, - 2.0, - 0.0 - ], - "pipelines": [ - "arith_total", - "arith_fma", - "arith_cvt", - "arith_sfu", - "load_store", - "texture" - ], - "shortest_path_bound_pipelines": [ - "load_store" - ], - "shortest_path_cycles": [ - 0.140625, - 0.140625, - 0.0, - 0.0, - 2.0, - 0.0 - ], - "total_bound_pipelines": [ - "load_store" - ], - "total_cycles": [ - 0.140625, - 0.140625, - 0.0, - 0.0, - 2.0, - 0.0 - ] - }, - "stack_spill_bytes": 0, - "thread_occupancy": 100, - "uniform_registers_used": 22, - "work_registers_used": 32 - }, - "Varying": { - "fp16_arithmetic": 0, + 1.0 + ] + }, + "thread_occupancy": 100, + "uniform_registers_used": 1, + "work_registers_used": 2 + } + } + } + }, + "flutter/impeller/entity/gles/morphology_filter.frag.gles": { + "Mali-G78": { + "core": "Mali-G78", + "filename": "flutter/impeller/entity/gles/morphology_filter.frag.gles", + "has_side_effects": false, + "has_uniform_computation": true, + "modifies_coverage": false, + "reads_color_buffer": false, + "type": "Fragment", + "uses_late_zs_test": false, + "uses_late_zs_update": false, + "variants": { + "Main": { + "fp16_arithmetic": 80, "has_stack_spilling": false, "performance": { "longest_path_bound_pipelines": [ - "load_store" + null ], "longest_path_cycles": [ - 0.015625, - 0.015625, - 0.015625, - 0.0, - 3.0, - 0.0 + null, + null, + null, + null, + null, + null, + null ], "pipelines": [ "arith_total", @@ -3739,54 +3373,59 @@ "arith_cvt", "arith_sfu", "load_store", + "varying", "texture" ], "shortest_path_bound_pipelines": [ - "load_store" + "arith_total", + "arith_cvt" ], "shortest_path_cycles": [ - 0.015625, - 0.015625, - 0.015625, + 0.0625, + 0.0, + 0.0625, + 0.0, + 0.0, 0.0, - 3.0, 0.0 ], "total_bound_pipelines": [ - "load_store" + "varying", + "texture" ], "total_cycles": [ - 0.015625, - 0.015625, - 0.015625, + 0.234375, + 0.078125, + 0.234375, 0.0, - 3.0, - 0.0 + 0.0, + 0.25, + 0.25 ] }, "stack_spill_bytes": 0, "thread_occupancy": 100, - "uniform_registers_used": 10, - "work_registers_used": 8 + "uniform_registers_used": 8, + "work_registers_used": 21 } } }, "Mali-T880": { "core": "Mali-T880", - "filename": "flutter/impeller/entity/gles/morphology_filter.vert.gles", + "filename": "flutter/impeller/entity/gles/morphology_filter.frag.gles", "has_uniform_computation": false, - "type": "Vertex", + "type": "Fragment", "variants": { "Main": { "has_stack_spilling": false, "performance": { "longest_path_bound_pipelines": [ - "load_store" + null ], "longest_path_cycles": [ - 2.9700000286102295, - 5.0, - 0.0 + null, + null, + null ], "pipelines": [ "arithmetic", @@ -3794,25 +3433,26 @@ "texture" ], "shortest_path_bound_pipelines": [ + "arithmetic", "load_store" ], "shortest_path_cycles": [ - 2.9700000286102295, - 5.0, + 1.0, + 1.0, 0.0 ], "total_bound_pipelines": [ - "load_store" + "arithmetic" ], "total_cycles": [ - 3.0, - 5.0, - 0.0 + 2.6666667461395264, + 1.0, + 1.0 ] }, "thread_occupancy": 100, - "uniform_registers_used": 6, - "work_registers_used": 2 + "uniform_registers_used": 1, + "work_registers_used": 4 } } } @@ -6333,167 +5973,10 @@ 6.0, 1.0 ] - }, - "thread_occupancy": 50, - "uniform_registers_used": 1, - "work_registers_used": 8 - } - } - } - }, - "flutter/impeller/entity/gles/vertices_uber.vert.gles": { - "Mali-G78": { - "core": "Mali-G78", - "filename": "flutter/impeller/entity/gles/vertices_uber.vert.gles", - "has_uniform_computation": true, - "type": "Vertex", - "variants": { - "Position": { - "fp16_arithmetic": 0, - "has_stack_spilling": false, - "performance": { - "longest_path_bound_pipelines": [ - "load_store" - ], - "longest_path_cycles": [ - 0.140625, - 0.140625, - 0.0, - 0.0, - 2.0, - 0.0 - ], - "pipelines": [ - "arith_total", - "arith_fma", - "arith_cvt", - "arith_sfu", - "load_store", - "texture" - ], - "shortest_path_bound_pipelines": [ - "load_store" - ], - "shortest_path_cycles": [ - 0.140625, - 0.140625, - 0.0, - 0.0, - 2.0, - 0.0 - ], - "total_bound_pipelines": [ - "load_store" - ], - "total_cycles": [ - 0.140625, - 0.140625, - 0.0, - 0.0, - 2.0, - 0.0 - ] - }, - "stack_spill_bytes": 0, - "thread_occupancy": 100, - "uniform_registers_used": 22, - "work_registers_used": 32 - }, - "Varying": { - "fp16_arithmetic": 0, - "has_stack_spilling": false, - "performance": { - "longest_path_bound_pipelines": [ - "load_store" - ], - "longest_path_cycles": [ - 0.015625, - 0.015625, - 0.015625, - 0.0, - 4.0, - 0.0 - ], - "pipelines": [ - "arith_total", - "arith_fma", - "arith_cvt", - "arith_sfu", - "load_store", - "texture" - ], - "shortest_path_bound_pipelines": [ - "load_store" - ], - "shortest_path_cycles": [ - 0.015625, - 0.015625, - 0.015625, - 0.0, - 4.0, - 0.0 - ], - "total_bound_pipelines": [ - "load_store" - ], - "total_cycles": [ - 0.015625, - 0.015625, - 0.015625, - 0.0, - 4.0, - 0.0 - ] - }, - "stack_spill_bytes": 0, - "thread_occupancy": 100, - "uniform_registers_used": 10, - "work_registers_used": 9 - } - } - }, - "Mali-T880": { - "core": "Mali-T880", - "filename": "flutter/impeller/entity/gles/vertices_uber.vert.gles", - "has_uniform_computation": false, - "type": "Vertex", - "variants": { - "Main": { - "has_stack_spilling": false, - "performance": { - "longest_path_bound_pipelines": [ - "load_store" - ], - "longest_path_cycles": [ - 2.9700000286102295, - 7.0, - 0.0 - ], - "pipelines": [ - "arithmetic", - "load_store", - "texture" - ], - "shortest_path_bound_pipelines": [ - "load_store" - ], - "shortest_path_cycles": [ - 2.9700000286102295, - 7.0, - 0.0 - ], - "total_bound_pipelines": [ - "load_store" - ], - "total_cycles": [ - 3.0, - 7.0, - 0.0 - ] - }, - "thread_occupancy": 100, - "uniform_registers_used": 6, - "work_registers_used": 2 + }, + "thread_occupancy": 50, + "uniform_registers_used": 1, + "work_registers_used": 8 } } } @@ -6927,266 +6410,16 @@ "fp16_arithmetic": 0, "has_stack_spilling": false, "performance": { - "longest_path_bound_pipelines": [ - "load_store" - ], - "longest_path_cycles": [ - 0.125, - 0.125, - 0.0, - 0.0625, - 3.0, - 0.0 - ], - "pipelines": [ - "arith_total", - "arith_fma", - "arith_cvt", - "arith_sfu", - "load_store", - "texture" - ], - "shortest_path_bound_pipelines": [ - "load_store" - ], - "shortest_path_cycles": [ - 0.125, - 0.125, - 0.0, - 0.0625, - 3.0, - 0.0 - ], - "total_bound_pipelines": [ - "load_store" - ], - "total_cycles": [ - 0.125, - 0.125, - 0.0, - 0.0625, - 3.0, - 0.0 - ] - }, - "stack_spill_bytes": 0, - "thread_occupancy": 100, - "uniform_registers_used": 36, - "work_registers_used": 11 - } - } - } - }, - "flutter/impeller/entity/kernel.vert.vkspv": { - "Mali-G78": { - "core": "Mali-G78", - "filename": "flutter/impeller/entity/kernel.vert.vkspv", - "has_uniform_computation": true, - "type": "Vertex", - "variants": { - "Position": { - "fp16_arithmetic": 0, - "has_stack_spilling": false, - "performance": { - "longest_path_bound_pipelines": [ - "load_store" - ], - "longest_path_cycles": [ - 0.125, - 0.125, - 0.0, - 0.0, - 2.0, - 0.0 - ], - "pipelines": [ - "arith_total", - "arith_fma", - "arith_cvt", - "arith_sfu", - "load_store", - "texture" - ], - "shortest_path_bound_pipelines": [ - "load_store" - ], - "shortest_path_cycles": [ - 0.125, - 0.125, - 0.0, - 0.0, - 2.0, - 0.0 - ], - "total_bound_pipelines": [ - "load_store" - ], - "total_cycles": [ - 0.125, - 0.125, - 0.0, - 0.0, - 2.0, - 0.0 - ] - }, - "stack_spill_bytes": 0, - "thread_occupancy": 100, - "uniform_registers_used": 30, - "work_registers_used": 32 - }, - "Varying": { - "fp16_arithmetic": 0, - "has_stack_spilling": false, - "performance": { - "longest_path_bound_pipelines": [ - "load_store" - ], - "longest_path_cycles": [ - 0.015625, - 0.015625, - 0.015625, - 0.0, - 3.0, - 0.0 - ], - "pipelines": [ - "arith_total", - "arith_fma", - "arith_cvt", - "arith_sfu", - "load_store", - "texture" - ], - "shortest_path_bound_pipelines": [ - "load_store" - ], - "shortest_path_cycles": [ - 0.015625, - 0.015625, - 0.015625, - 0.0, - 3.0, - 0.0 - ], - "total_bound_pipelines": [ - "load_store" - ], - "total_cycles": [ - 0.015625, - 0.015625, - 0.015625, - 0.0, - 3.0, - 0.0 - ] - }, - "stack_spill_bytes": 0, - "thread_occupancy": 100, - "uniform_registers_used": 22, - "work_registers_used": 8 - } - } - } - }, - "flutter/impeller/entity/kernel_decal.frag.vkspv": { - "Mali-G78": { - "core": "Mali-G78", - "filename": "flutter/impeller/entity/kernel_decal.frag.vkspv", - "has_side_effects": false, - "has_uniform_computation": true, - "modifies_coverage": false, - "reads_color_buffer": false, - "type": "Fragment", - "uses_late_zs_test": false, - "uses_late_zs_update": false, - "variants": { - "Main": { - "fp16_arithmetic": 66, - "has_stack_spilling": false, - "performance": { - "longest_path_bound_pipelines": [ - null - ], - "longest_path_cycles": [ - null, - null, - null, - null, - null, - null, - null - ], - "pipelines": [ - "arith_total", - "arith_fma", - "arith_cvt", - "arith_sfu", - "load_store", - "varying", - "texture" - ], - "shortest_path_bound_pipelines": [ - "arith_total", - "arith_cvt" - ], - "shortest_path_cycles": [ - 0.09375, - 0.0, - 0.09375, - 0.0, - 0.0, - 0.0, - 0.0 - ], - "total_bound_pipelines": [ - "load_store" - ], - "total_cycles": [ - 0.34375, - 0.0625, - 0.34375, - 0.1875, - 1.0, - 0.25, - 0.25 - ] - }, - "stack_spill_bytes": 0, - "thread_occupancy": 100, - "uniform_registers_used": 4, - "work_registers_used": 17 - } - } - } - }, - "flutter/impeller/entity/kernel_nodecal.frag.vkspv": { - "Mali-G78": { - "core": "Mali-G78", - "filename": "flutter/impeller/entity/kernel_nodecal.frag.vkspv", - "has_side_effects": false, - "has_uniform_computation": true, - "modifies_coverage": false, - "reads_color_buffer": false, - "type": "Fragment", - "uses_late_zs_test": false, - "uses_late_zs_update": false, - "variants": { - "Main": { - "fp16_arithmetic": 50, - "has_stack_spilling": false, - "performance": { - "longest_path_bound_pipelines": [ - null - ], - "longest_path_cycles": [ - null, - null, - null, - null, - null, - null, - null + "longest_path_bound_pipelines": [ + "load_store" + ], + "longest_path_cycles": [ + 0.125, + 0.125, + 0.0, + 0.0625, + 3.0, + 0.0 ], "pipelines": [ "arith_total", @@ -7194,38 +6427,34 @@ "arith_cvt", "arith_sfu", "load_store", - "varying", "texture" ], "shortest_path_bound_pipelines": [ - "arith_total", - "arith_cvt" + "load_store" ], "shortest_path_cycles": [ - 0.09375, - 0.0, - 0.09375, - 0.0, - 0.0, + 0.125, + 0.125, 0.0, + 0.0625, + 3.0, 0.0 ], "total_bound_pipelines": [ "load_store" ], "total_cycles": [ - 0.21875, - 0.0625, - 0.21875, + 0.125, + 0.125, 0.0, - 1.0, - 0.25, - 0.25 + 0.0625, + 3.0, + 0.0 ] }, "stack_spill_bytes": 0, "thread_occupancy": 100, - "uniform_registers_used": 4, + "uniform_registers_used": 36, "work_registers_used": 11 } } @@ -7521,118 +6750,6 @@ } } }, - "flutter/impeller/entity/morphology_filter.vert.vkspv": { - "Mali-G78": { - "core": "Mali-G78", - "filename": "flutter/impeller/entity/morphology_filter.vert.vkspv", - "has_uniform_computation": true, - "type": "Vertex", - "variants": { - "Position": { - "fp16_arithmetic": 0, - "has_stack_spilling": false, - "performance": { - "longest_path_bound_pipelines": [ - "load_store" - ], - "longest_path_cycles": [ - 0.125, - 0.125, - 0.0, - 0.0, - 2.0, - 0.0 - ], - "pipelines": [ - "arith_total", - "arith_fma", - "arith_cvt", - "arith_sfu", - "load_store", - "texture" - ], - "shortest_path_bound_pipelines": [ - "load_store" - ], - "shortest_path_cycles": [ - 0.125, - 0.125, - 0.0, - 0.0, - 2.0, - 0.0 - ], - "total_bound_pipelines": [ - "load_store" - ], - "total_cycles": [ - 0.125, - 0.125, - 0.0, - 0.0, - 2.0, - 0.0 - ] - }, - "stack_spill_bytes": 0, - "thread_occupancy": 100, - "uniform_registers_used": 30, - "work_registers_used": 32 - }, - "Varying": { - "fp16_arithmetic": 0, - "has_stack_spilling": false, - "performance": { - "longest_path_bound_pipelines": [ - "load_store" - ], - "longest_path_cycles": [ - 0.015625, - 0.015625, - 0.015625, - 0.0, - 3.0, - 0.0 - ], - "pipelines": [ - "arith_total", - "arith_fma", - "arith_cvt", - "arith_sfu", - "load_store", - "texture" - ], - "shortest_path_bound_pipelines": [ - "load_store" - ], - "shortest_path_cycles": [ - 0.015625, - 0.015625, - 0.015625, - 0.0, - 3.0, - 0.0 - ], - "total_bound_pipelines": [ - "load_store" - ], - "total_cycles": [ - 0.015625, - 0.015625, - 0.015625, - 0.0, - 3.0, - 0.0 - ] - }, - "stack_spill_bytes": 0, - "thread_occupancy": 100, - "uniform_registers_used": 22, - "work_registers_used": 8 - } - } - } - }, "flutter/impeller/entity/points.comp.vkspv": { "Mali-G78": { "core": "Mali-G78", @@ -9487,118 +8604,6 @@ } } }, - "flutter/impeller/entity/vertices_uber.vert.vkspv": { - "Mali-G78": { - "core": "Mali-G78", - "filename": "flutter/impeller/entity/vertices_uber.vert.vkspv", - "has_uniform_computation": true, - "type": "Vertex", - "variants": { - "Position": { - "fp16_arithmetic": 0, - "has_stack_spilling": false, - "performance": { - "longest_path_bound_pipelines": [ - "load_store" - ], - "longest_path_cycles": [ - 0.125, - 0.125, - 0.0, - 0.0, - 2.0, - 0.0 - ], - "pipelines": [ - "arith_total", - "arith_fma", - "arith_cvt", - "arith_sfu", - "load_store", - "texture" - ], - "shortest_path_bound_pipelines": [ - "load_store" - ], - "shortest_path_cycles": [ - 0.125, - 0.125, - 0.0, - 0.0, - 2.0, - 0.0 - ], - "total_bound_pipelines": [ - "load_store" - ], - "total_cycles": [ - 0.125, - 0.125, - 0.0, - 0.0, - 2.0, - 0.0 - ] - }, - "stack_spill_bytes": 0, - "thread_occupancy": 100, - "uniform_registers_used": 30, - "work_registers_used": 32 - }, - "Varying": { - "fp16_arithmetic": 0, - "has_stack_spilling": false, - "performance": { - "longest_path_bound_pipelines": [ - "load_store" - ], - "longest_path_cycles": [ - 0.015625, - 0.015625, - 0.015625, - 0.0, - 4.0, - 0.0 - ], - "pipelines": [ - "arith_total", - "arith_fma", - "arith_cvt", - "arith_sfu", - "load_store", - "texture" - ], - "shortest_path_bound_pipelines": [ - "load_store" - ], - "shortest_path_cycles": [ - 0.015625, - 0.015625, - 0.015625, - 0.0, - 4.0, - 0.0 - ], - "total_bound_pipelines": [ - "load_store" - ], - "total_cycles": [ - 0.015625, - 0.015625, - 0.015625, - 0.0, - 4.0, - 0.0 - ] - }, - "stack_spill_bytes": 0, - "thread_occupancy": 100, - "uniform_registers_used": 22, - "work_registers_used": 9 - } - } - } - }, "flutter/impeller/entity/yuv_to_rgb_filter.frag.vkspv": { "Mali-G78": { "core": "Mali-G78",