From 04d9b71235a99572f948278ac7d23dce2355fa14 Mon Sep 17 00:00:00 2001 From: Brandon DeRosier Date: Tue, 28 Mar 2023 01:00:42 -0700 Subject: [PATCH 1/4] [Impeller] Gaussian Blur: Add alpha mask specialization --- ci/licenses_golden/licenses_flutter | 78 +++++-------------- impeller/entity/BUILD.gn | 8 +- impeller/entity/contents/content_context.cc | 10 ++- impeller/entity/contents/content_context.h | 60 ++++++++++---- .../filters/gaussian_blur_filter_contents.cc | 45 +++++++---- .../{ => gaussian_blur}/gaussian_blur.glsl | 36 ++++++--- .../{ => gaussian_blur}/gaussian_blur.vert | 0 .../gaussian_blur_alpha_decal.frag} | 7 +- .../gaussian_blur_alpha_nodecal.frag} | 7 +- .../gaussian_blur_noalpha_decal.frag | 8 ++ .../gaussian_blur_noalpha_nodecal.frag | 8 ++ 11 files changed, 150 insertions(+), 117 deletions(-) rename impeller/entity/shaders/{ => gaussian_blur}/gaussian_blur.glsl (73%) rename impeller/entity/shaders/{ => gaussian_blur}/gaussian_blur.vert (100%) rename impeller/entity/shaders/{gaussian_blur.frag => gaussian_blur/gaussian_blur_alpha_decal.frag} (64%) rename impeller/entity/shaders/{gaussian_blur_decal.frag => gaussian_blur/gaussian_blur_alpha_nodecal.frag} (63%) create mode 100644 impeller/entity/shaders/gaussian_blur/gaussian_blur_noalpha_decal.frag create mode 100644 impeller/entity/shaders/gaussian_blur/gaussian_blur_noalpha_nodecal.frag diff --git a/ci/licenses_golden/licenses_flutter b/ci/licenses_golden/licenses_flutter index 9cf5630e20596..b07fa5cdf66ee 100644 --- a/ci/licenses_golden/licenses_flutter +++ b/ci/licenses_golden/licenses_flutter @@ -1246,10 +1246,12 @@ ORIGIN: ../../../flutter/impeller/entity/shaders/color_matrix_color_filter.frag ORIGIN: ../../../flutter/impeller/entity/shaders/color_matrix_color_filter.vert + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/entity/shaders/conical_gradient_fill.frag + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/entity/shaders/conical_gradient_ssbo_fill.frag + ../../../flutter/LICENSE -ORIGIN: ../../../flutter/impeller/entity/shaders/gaussian_blur.frag + ../../../flutter/LICENSE -ORIGIN: ../../../flutter/impeller/entity/shaders/gaussian_blur.glsl + ../../../flutter/LICENSE -ORIGIN: ../../../flutter/impeller/entity/shaders/gaussian_blur.vert + ../../../flutter/LICENSE -ORIGIN: ../../../flutter/impeller/entity/shaders/gaussian_blur_decal.frag + ../../../flutter/LICENSE +ORIGIN: ../../../flutter/impeller/entity/shaders/gaussian_blur/gaussian_blur_alpha_decal.frag + ../../../flutter/LICENSE +ORIGIN: ../../../flutter/impeller/entity/shaders/gaussian_blur/gaussian_blur_alpha_nodecal.frag + ../../../flutter/LICENSE +ORIGIN: ../../../flutter/impeller/entity/shaders/gaussian_blur/gaussian_blur_noalpha_decal.frag + ../../../flutter/LICENSE +ORIGIN: ../../../flutter/impeller/entity/shaders/gaussian_blur/gaussian_blur_noalpha_nodecal.frag + ../../../flutter/LICENSE +ORIGIN: ../../../flutter/impeller/entity/shaders/gaussian_blur/gaussian_blur.glsl + ../../../flutter/LICENSE +ORIGIN: ../../../flutter/impeller/entity/shaders/gaussian_blur/gaussian_blur.vert + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/entity/shaders/glyph_atlas.frag + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/entity/shaders/glyph_atlas.vert + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/entity/shaders/glyph_atlas_sdf.frag + ../../../flutter/LICENSE @@ -1315,19 +1317,6 @@ ORIGIN: ../../../flutter/impeller/geometry/type_traits.cc + ../../../flutter/LIC ORIGIN: ../../../flutter/impeller/geometry/type_traits.h + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/geometry/vector.cc + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/geometry/vector.h + ../../../flutter/LICENSE -ORIGIN: ../../../flutter/impeller/golden_tests/golden_digest.cc + ../../../flutter/LICENSE -ORIGIN: ../../../flutter/impeller/golden_tests/golden_digest.h + ../../../flutter/LICENSE -ORIGIN: ../../../flutter/impeller/golden_tests/golden_tests.cc + ../../../flutter/LICENSE -ORIGIN: ../../../flutter/impeller/golden_tests/main.cc + ../../../flutter/LICENSE -ORIGIN: ../../../flutter/impeller/golden_tests/metal_screenshot.h + ../../../flutter/LICENSE -ORIGIN: ../../../flutter/impeller/golden_tests/metal_screenshot.mm + ../../../flutter/LICENSE -ORIGIN: ../../../flutter/impeller/golden_tests/metal_screenshoter.h + ../../../flutter/LICENSE -ORIGIN: ../../../flutter/impeller/golden_tests/metal_screenshoter.mm + ../../../flutter/LICENSE -ORIGIN: ../../../flutter/impeller/golden_tests/working_directory.cc + ../../../flutter/LICENSE -ORIGIN: ../../../flutter/impeller/golden_tests/working_directory.h + ../../../flutter/LICENSE -ORIGIN: ../../../flutter/impeller/golden_tests_harvester/bin/golden_tests_harvester.dart + ../../../flutter/LICENSE -ORIGIN: ../../../flutter/impeller/golden_tests_harvester/lib/golden_tests_harvester.dart + ../../../flutter/LICENSE -ORIGIN: ../../../flutter/impeller/golden_tests_harvester/lib/logger.dart + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/image/backends/skia/compressed_image_skia.cc + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/image/backends/skia/compressed_image_skia.h + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/image/compressed_image.cc + ../../../flutter/LICENSE @@ -1433,22 +1422,12 @@ ORIGIN: ../../../flutter/impeller/renderer/backend/vulkan/command_buffer_vk.cc + ORIGIN: ../../../flutter/impeller/renderer/backend/vulkan/command_buffer_vk.h + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/renderer/backend/vulkan/command_encoder_vk.cc + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/renderer/backend/vulkan/command_encoder_vk.h + ../../../flutter/LICENSE -ORIGIN: ../../../flutter/impeller/renderer/backend/vulkan/command_pool_vk.cc + ../../../flutter/LICENSE -ORIGIN: ../../../flutter/impeller/renderer/backend/vulkan/command_pool_vk.h + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/renderer/backend/vulkan/context_vk.cc + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/renderer/backend/vulkan/context_vk.h + ../../../flutter/LICENSE -ORIGIN: ../../../flutter/impeller/renderer/backend/vulkan/debug_report_vk.cc + ../../../flutter/LICENSE -ORIGIN: ../../../flutter/impeller/renderer/backend/vulkan/debug_report_vk.h + ../../../flutter/LICENSE -ORIGIN: ../../../flutter/impeller/renderer/backend/vulkan/descriptor_pool_vk.cc + ../../../flutter/LICENSE -ORIGIN: ../../../flutter/impeller/renderer/backend/vulkan/descriptor_pool_vk.h + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/renderer/backend/vulkan/device_buffer_vk.cc + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/renderer/backend/vulkan/device_buffer_vk.h + ../../../flutter/LICENSE -ORIGIN: ../../../flutter/impeller/renderer/backend/vulkan/fence_waiter_vk.cc + ../../../flutter/LICENSE -ORIGIN: ../../../flutter/impeller/renderer/backend/vulkan/fence_waiter_vk.h + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/renderer/backend/vulkan/formats_vk.cc + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/renderer/backend/vulkan/formats_vk.h + ../../../flutter/LICENSE -ORIGIN: ../../../flutter/impeller/renderer/backend/vulkan/pipeline_cache_vk.cc + ../../../flutter/LICENSE -ORIGIN: ../../../flutter/impeller/renderer/backend/vulkan/pipeline_cache_vk.h + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/renderer/backend/vulkan/pipeline_library_vk.cc + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/renderer/backend/vulkan/pipeline_library_vk.h + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/renderer/backend/vulkan/pipeline_vk.cc + ../../../flutter/LICENSE @@ -1488,8 +1467,6 @@ ORIGIN: ../../../flutter/impeller/renderer/buffer.cc + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/renderer/buffer.h + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/renderer/buffer_view.cc + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/renderer/buffer_view.h + ../../../flutter/LICENSE -ORIGIN: ../../../flutter/impeller/renderer/capabilities.cc + ../../../flutter/LICENSE -ORIGIN: ../../../flutter/impeller/renderer/capabilities.h + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/renderer/command.cc + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/renderer/command.h + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/renderer/command_buffer.cc + ../../../flutter/LICENSE @@ -1504,10 +1481,13 @@ ORIGIN: ../../../flutter/impeller/renderer/compute_pipeline_descriptor.cc + ../. ORIGIN: ../../../flutter/impeller/renderer/compute_pipeline_descriptor.h + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/renderer/context.cc + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/renderer/context.h + ../../../flutter/LICENSE +ORIGIN: ../../../flutter/impeller/renderer/descriptor_set_layout.h + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/renderer/device_buffer.cc + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/renderer/device_buffer.h + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/renderer/device_buffer_descriptor.cc + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/renderer/device_buffer_descriptor.h + ../../../flutter/LICENSE +ORIGIN: ../../../flutter/impeller/renderer/device_capabilities.cc + ../../../flutter/LICENSE +ORIGIN: ../../../flutter/impeller/renderer/device_capabilities.h + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/renderer/formats.cc + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/renderer/formats.h + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/renderer/gpu_tracer.cc + ../../../flutter/LICENSE @@ -1666,7 +1646,6 @@ ORIGIN: ../../../flutter/lib/ui/dart_wrapper.h + ../../../flutter/LICENSE ORIGIN: ../../../flutter/lib/ui/experiments/scene.dart + ../../../flutter/LICENSE ORIGIN: ../../../flutter/lib/ui/experiments/setup_hooks.dart + ../../../flutter/LICENSE ORIGIN: ../../../flutter/lib/ui/experiments/ui.dart + ../../../flutter/LICENSE -ORIGIN: ../../../flutter/lib/ui/floating_point.h + ../../../flutter/LICENSE ORIGIN: ../../../flutter/lib/ui/geometry.dart + ../../../flutter/LICENSE ORIGIN: ../../../flutter/lib/ui/hash_codes.dart + ../../../flutter/LICENSE ORIGIN: ../../../flutter/lib/ui/hooks.dart + ../../../flutter/LICENSE @@ -3809,10 +3788,12 @@ FILE: ../../../flutter/impeller/entity/shaders/color_matrix_color_filter.frag FILE: ../../../flutter/impeller/entity/shaders/color_matrix_color_filter.vert FILE: ../../../flutter/impeller/entity/shaders/conical_gradient_fill.frag FILE: ../../../flutter/impeller/entity/shaders/conical_gradient_ssbo_fill.frag -FILE: ../../../flutter/impeller/entity/shaders/gaussian_blur.frag -FILE: ../../../flutter/impeller/entity/shaders/gaussian_blur.glsl -FILE: ../../../flutter/impeller/entity/shaders/gaussian_blur.vert -FILE: ../../../flutter/impeller/entity/shaders/gaussian_blur_decal.frag +FILE: ../../../flutter/impeller/entity/shaders/gaussian_blur/gaussian_blur_alpha_decal.frag +FILE: ../../../flutter/impeller/entity/shaders/gaussian_blur/gaussian_blur_alpha_nodecal.frag +FILE: ../../../flutter/impeller/entity/shaders/gaussian_blur/gaussian_blur_noalpha_decal.frag +FILE: ../../../flutter/impeller/entity/shaders/gaussian_blur/gaussian_blur_noalpha_nodecal.frag +FILE: ../../../flutter/impeller/entity/shaders/gaussian_blur/gaussian_blur.glsl +FILE: ../../../flutter/impeller/entity/shaders/gaussian_blur/gaussian_blur.vert FILE: ../../../flutter/impeller/entity/shaders/glyph_atlas.frag FILE: ../../../flutter/impeller/entity/shaders/glyph_atlas.vert FILE: ../../../flutter/impeller/entity/shaders/glyph_atlas_sdf.frag @@ -3878,19 +3859,6 @@ FILE: ../../../flutter/impeller/geometry/type_traits.cc FILE: ../../../flutter/impeller/geometry/type_traits.h FILE: ../../../flutter/impeller/geometry/vector.cc FILE: ../../../flutter/impeller/geometry/vector.h -FILE: ../../../flutter/impeller/golden_tests/golden_digest.cc -FILE: ../../../flutter/impeller/golden_tests/golden_digest.h -FILE: ../../../flutter/impeller/golden_tests/golden_tests.cc -FILE: ../../../flutter/impeller/golden_tests/main.cc -FILE: ../../../flutter/impeller/golden_tests/metal_screenshot.h -FILE: ../../../flutter/impeller/golden_tests/metal_screenshot.mm -FILE: ../../../flutter/impeller/golden_tests/metal_screenshoter.h -FILE: ../../../flutter/impeller/golden_tests/metal_screenshoter.mm -FILE: ../../../flutter/impeller/golden_tests/working_directory.cc -FILE: ../../../flutter/impeller/golden_tests/working_directory.h -FILE: ../../../flutter/impeller/golden_tests_harvester/bin/golden_tests_harvester.dart -FILE: ../../../flutter/impeller/golden_tests_harvester/lib/golden_tests_harvester.dart -FILE: ../../../flutter/impeller/golden_tests_harvester/lib/logger.dart FILE: ../../../flutter/impeller/image/backends/skia/compressed_image_skia.cc FILE: ../../../flutter/impeller/image/backends/skia/compressed_image_skia.h FILE: ../../../flutter/impeller/image/compressed_image.cc @@ -3996,22 +3964,12 @@ FILE: ../../../flutter/impeller/renderer/backend/vulkan/command_buffer_vk.cc FILE: ../../../flutter/impeller/renderer/backend/vulkan/command_buffer_vk.h FILE: ../../../flutter/impeller/renderer/backend/vulkan/command_encoder_vk.cc FILE: ../../../flutter/impeller/renderer/backend/vulkan/command_encoder_vk.h -FILE: ../../../flutter/impeller/renderer/backend/vulkan/command_pool_vk.cc -FILE: ../../../flutter/impeller/renderer/backend/vulkan/command_pool_vk.h FILE: ../../../flutter/impeller/renderer/backend/vulkan/context_vk.cc FILE: ../../../flutter/impeller/renderer/backend/vulkan/context_vk.h -FILE: ../../../flutter/impeller/renderer/backend/vulkan/debug_report_vk.cc -FILE: ../../../flutter/impeller/renderer/backend/vulkan/debug_report_vk.h -FILE: ../../../flutter/impeller/renderer/backend/vulkan/descriptor_pool_vk.cc -FILE: ../../../flutter/impeller/renderer/backend/vulkan/descriptor_pool_vk.h FILE: ../../../flutter/impeller/renderer/backend/vulkan/device_buffer_vk.cc FILE: ../../../flutter/impeller/renderer/backend/vulkan/device_buffer_vk.h -FILE: ../../../flutter/impeller/renderer/backend/vulkan/fence_waiter_vk.cc -FILE: ../../../flutter/impeller/renderer/backend/vulkan/fence_waiter_vk.h FILE: ../../../flutter/impeller/renderer/backend/vulkan/formats_vk.cc FILE: ../../../flutter/impeller/renderer/backend/vulkan/formats_vk.h -FILE: ../../../flutter/impeller/renderer/backend/vulkan/pipeline_cache_vk.cc -FILE: ../../../flutter/impeller/renderer/backend/vulkan/pipeline_cache_vk.h FILE: ../../../flutter/impeller/renderer/backend/vulkan/pipeline_library_vk.cc FILE: ../../../flutter/impeller/renderer/backend/vulkan/pipeline_library_vk.h FILE: ../../../flutter/impeller/renderer/backend/vulkan/pipeline_vk.cc @@ -4051,8 +4009,6 @@ FILE: ../../../flutter/impeller/renderer/buffer.cc FILE: ../../../flutter/impeller/renderer/buffer.h FILE: ../../../flutter/impeller/renderer/buffer_view.cc FILE: ../../../flutter/impeller/renderer/buffer_view.h -FILE: ../../../flutter/impeller/renderer/capabilities.cc -FILE: ../../../flutter/impeller/renderer/capabilities.h FILE: ../../../flutter/impeller/renderer/command.cc FILE: ../../../flutter/impeller/renderer/command.h FILE: ../../../flutter/impeller/renderer/command_buffer.cc @@ -4067,10 +4023,13 @@ FILE: ../../../flutter/impeller/renderer/compute_pipeline_descriptor.cc FILE: ../../../flutter/impeller/renderer/compute_pipeline_descriptor.h FILE: ../../../flutter/impeller/renderer/context.cc FILE: ../../../flutter/impeller/renderer/context.h +FILE: ../../../flutter/impeller/renderer/descriptor_set_layout.h FILE: ../../../flutter/impeller/renderer/device_buffer.cc FILE: ../../../flutter/impeller/renderer/device_buffer.h FILE: ../../../flutter/impeller/renderer/device_buffer_descriptor.cc FILE: ../../../flutter/impeller/renderer/device_buffer_descriptor.h +FILE: ../../../flutter/impeller/renderer/device_capabilities.cc +FILE: ../../../flutter/impeller/renderer/device_capabilities.h FILE: ../../../flutter/impeller/renderer/formats.cc FILE: ../../../flutter/impeller/renderer/formats.h FILE: ../../../flutter/impeller/renderer/gpu_tracer.cc @@ -4231,7 +4190,6 @@ FILE: ../../../flutter/lib/ui/dart_wrapper.h FILE: ../../../flutter/lib/ui/experiments/scene.dart FILE: ../../../flutter/lib/ui/experiments/setup_hooks.dart FILE: ../../../flutter/lib/ui/experiments/ui.dart -FILE: ../../../flutter/lib/ui/floating_point.h FILE: ../../../flutter/lib/ui/geometry.dart FILE: ../../../flutter/lib/ui/hash_codes.dart FILE: ../../../flutter/lib/ui/hooks.dart diff --git a/impeller/entity/BUILD.gn b/impeller/entity/BUILD.gn index 9689ac979e85d..69c772605977d 100644 --- a/impeller/entity/BUILD.gn +++ b/impeller/entity/BUILD.gn @@ -35,9 +35,11 @@ impeller_shaders("entity_shaders") { "shaders/color_matrix_color_filter.frag", "shaders/color_matrix_color_filter.vert", "shaders/conical_gradient_fill.frag", - "shaders/gaussian_blur.frag", - "shaders/gaussian_blur_decal.frag", - "shaders/gaussian_blur.vert", + "shaders/gaussian_blur/gaussian_blur.vert", + "shaders/gaussian_blur/gaussian_blur_alpha_decal.frag", + "shaders/gaussian_blur/gaussian_blur_alpha_nodecal.frag", + "shaders/gaussian_blur/gaussian_blur_noalpha_decal.frag", + "shaders/gaussian_blur/gaussian_blur_noalpha_nodecal.frag", "shaders/glyph_atlas.frag", "shaders/glyph_atlas.vert", "shaders/glyph_atlas_sdf.frag", diff --git a/impeller/entity/contents/content_context.cc b/impeller/entity/contents/content_context.cc index 3c2545cd97b53..9b421edfcaa4a 100644 --- a/impeller/entity/contents/content_context.cc +++ b/impeller/entity/contents/content_context.cc @@ -261,10 +261,14 @@ ContentContext::ContentContext(std::shared_ptr context) CreateDefaultPipeline(*context_); tiled_texture_pipelines_[{}] = CreateDefaultPipeline(*context_); - gaussian_blur_pipelines_[{}] = - CreateDefaultPipeline(*context_); - gaussian_blur_decal_pipelines_[{}] = + gaussian_blur_alpha_decal_pipelines_[{}] = + CreateDefaultPipeline(*context_); + gaussian_blur_alpha_nodecal_pipelines_[{}] = + CreateDefaultPipeline(*context_); + gaussian_blur_noalpha_decal_pipelines_[{}] = CreateDefaultPipeline(*context_); + gaussian_blur_noalpha_nodecal_pipelines_[{}] = + CreateDefaultPipeline(*context_); border_mask_blur_pipelines_[{}] = CreateDefaultPipeline(*context_); morphology_filter_pipelines_[{}] = diff --git a/impeller/entity/contents/content_context.h b/impeller/entity/contents/content_context.h index f9ab7ac85df0c..f139293d59400 100644 --- a/impeller/entity/contents/content_context.h +++ b/impeller/entity/contents/content_context.h @@ -12,6 +12,12 @@ #include "flutter/fml/logging.h" #include "flutter/fml/macros.h" #include "impeller/base/validation.h" +#include "impeller/entity/entity.h" +#include "impeller/renderer/capabilities.h" +#include "impeller/renderer/formats.h" +#include "impeller/renderer/pipeline.h" +#include "impeller/scene/scene_context.h" + #include "impeller/entity/blend.frag.h" #include "impeller/entity/blend.vert.h" #include "impeller/entity/border_mask_blur.frag.h" @@ -19,10 +25,6 @@ #include "impeller/entity/color_matrix_color_filter.frag.h" #include "impeller/entity/color_matrix_color_filter.vert.h" #include "impeller/entity/conical_gradient_fill.frag.h" -#include "impeller/entity/entity.h" -#include "impeller/entity/gaussian_blur.frag.h" -#include "impeller/entity/gaussian_blur.vert.h" -#include "impeller/entity/gaussian_blur_decal.frag.h" #include "impeller/entity/glyph_atlas.frag.h" #include "impeller/entity/glyph_atlas.vert.h" #include "impeller/entity/glyph_atlas_sdf.frag.h" @@ -48,10 +50,12 @@ #include "impeller/entity/vertices.frag.h" #include "impeller/entity/yuv_to_rgb_filter.frag.h" #include "impeller/entity/yuv_to_rgb_filter.vert.h" -#include "impeller/renderer/capabilities.h" -#include "impeller/renderer/formats.h" -#include "impeller/renderer/pipeline.h" -#include "impeller/scene/scene_context.h" + +#include "impeller/entity/gaussian_blur.vert.h" +#include "impeller/entity/gaussian_blur_alpha_decal.frag.h" +#include "impeller/entity/gaussian_blur_alpha_nodecal.frag.h" +#include "impeller/entity/gaussian_blur_noalpha_decal.frag.h" +#include "impeller/entity/gaussian_blur_noalpha_nodecal.frag.h" #include "impeller/entity/position_color.vert.h" @@ -132,10 +136,18 @@ using PositionUVPipeline = RenderPipelineT; using TiledTexturePipeline = RenderPipelineT; -using GaussianBlurPipeline = - RenderPipelineT; +using GaussianBlurAlphaDecalPipeline = + RenderPipelineT; +using GaussianBlurAlphaPipeline = + RenderPipelineT; using GaussianBlurDecalPipeline = - RenderPipelineT; + RenderPipelineT; +using GaussianBlurPipeline = + RenderPipelineT; using BorderMaskBlurPipeline = RenderPipelineT; using MorphologyFilterPipeline = @@ -388,14 +400,24 @@ class ContentContext { return GetPipeline(tiled_texture_pipelines_, opts); } - std::shared_ptr> GetGaussianBlurPipeline( + std::shared_ptr> + GetGaussianBlurAlphaDecalPipeline(ContentContextOptions opts) const { + return GetPipeline(gaussian_blur_alpha_decal_pipelines_, opts); + } + + std::shared_ptr> GetGaussianBlurAlphaPipeline( ContentContextOptions opts) const { - return GetPipeline(gaussian_blur_pipelines_, opts); + return GetPipeline(gaussian_blur_alpha_nodecal_pipelines_, opts); } std::shared_ptr> GetGaussianBlurDecalPipeline( ContentContextOptions opts) const { - return GetPipeline(gaussian_blur_decal_pipelines_, opts); + return GetPipeline(gaussian_blur_noalpha_decal_pipelines_, opts); + } + + std::shared_ptr> GetGaussianBlurPipeline( + ContentContextOptions opts) const { + return GetPipeline(gaussian_blur_noalpha_nodecal_pipelines_, opts); } std::shared_ptr> GetBorderMaskBlurPipeline( @@ -665,8 +687,14 @@ class ContentContext { mutable Variants texture_pipelines_; mutable Variants position_uv_pipelines_; mutable Variants tiled_texture_pipelines_; - mutable Variants gaussian_blur_pipelines_; - mutable Variants gaussian_blur_decal_pipelines_; + mutable Variants + gaussian_blur_alpha_decal_pipelines_; + mutable Variants + gaussian_blur_alpha_nodecal_pipelines_; + mutable Variants + gaussian_blur_noalpha_decal_pipelines_; + mutable Variants + gaussian_blur_noalpha_nodecal_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 6683a7118dbcb..deec204c33de2 100644 --- a/impeller/entity/contents/filters/gaussian_blur_filter_contents.cc +++ b/impeller/entity/contents/filters/gaussian_blur_filter_contents.cc @@ -87,8 +87,8 @@ std::optional DirectionalGaussianBlurFilterContents::RenderFilter( const Entity& entity, const Matrix& effect_transform, const Rect& coverage) const { - using VS = GaussianBlurPipeline::VertexShader; - using FS = GaussianBlurPipeline::FragmentShader; + using VS = GaussianBlurAlphaDecalPipeline::VertexShader; + using FS = GaussianBlurAlphaDecalPipeline::FragmentShader; //---------------------------------------------------------------------------- /// Handle inputs. @@ -192,7 +192,7 @@ std::optional DirectionalGaussianBlurFilterContents::RenderFilter( frame_info.alpha_mask_sampler_y_coord_scale = source_snapshot->texture->GetYCoordScale(); - FS::FragInfo frag_info; + FS::BlurInfo frag_info; auto r = Radius{transformed_blur_radius_length}; frag_info.blur_sigma = Sigma{r}.sigma; frag_info.blur_radius = r.radius; @@ -201,9 +201,6 @@ std::optional DirectionalGaussianBlurFilterContents::RenderFilter( frag_info.blur_direction = pass_transform.Invert().TransformDirection(Vector2(1, 0)).Normalize(); - frag_info.src_factor = src_color_factor_; - frag_info.inner_blur_factor = inner_blur_factor_; - frag_info.outer_blur_factor = outer_blur_factor_; frag_info.texture_size = Point(input_snapshot->GetCoverage().value().size); Command cmd; @@ -217,10 +214,8 @@ std::optional DirectionalGaussianBlurFilterContents::RenderFilter( auto source_descriptor = source_snapshot->sampler_descriptor; switch (tile_mode_) { case Entity::TileMode::kDecal: - cmd.pipeline = renderer.GetGaussianBlurDecalPipeline(options); break; case Entity::TileMode::kClamp: - cmd.pipeline = renderer.GetGaussianBlurPipeline(options); input_descriptor.width_address_mode = SamplerAddressMode::kClampToEdge; input_descriptor.height_address_mode = SamplerAddressMode::kClampToEdge; source_descriptor.width_address_mode = SamplerAddressMode::kClampToEdge; @@ -228,14 +223,12 @@ std::optional DirectionalGaussianBlurFilterContents::RenderFilter( SamplerAddressMode::kClampToEdge; break; case Entity::TileMode::kMirror: - cmd.pipeline = renderer.GetGaussianBlurPipeline(options); input_descriptor.width_address_mode = SamplerAddressMode::kMirror; input_descriptor.height_address_mode = SamplerAddressMode::kMirror; source_descriptor.width_address_mode = SamplerAddressMode::kMirror; source_descriptor.height_address_mode = SamplerAddressMode::kMirror; break; case Entity::TileMode::kRepeat: - cmd.pipeline = renderer.GetGaussianBlurPipeline(options); input_descriptor.width_address_mode = SamplerAddressMode::kRepeat; input_descriptor.height_address_mode = SamplerAddressMode::kRepeat; source_descriptor.width_address_mode = SamplerAddressMode::kRepeat; @@ -243,16 +236,38 @@ std::optional DirectionalGaussianBlurFilterContents::RenderFilter( break; } + bool has_alpha_mask = blur_style_ != BlurStyle::kNormal; + bool has_decal_specialization = tile_mode_ == Entity::TileMode::kDecal; + + if (has_alpha_mask && has_decal_specialization) { + cmd.pipeline = renderer.GetGaussianBlurAlphaDecalPipeline(options); + } else if (has_alpha_mask) { + cmd.pipeline = renderer.GetGaussianBlurAlphaPipeline(options); + } else if (has_decal_specialization) { + cmd.pipeline = renderer.GetGaussianBlurDecalPipeline(options); + } else { + cmd.pipeline = renderer.GetGaussianBlurPipeline(options); + } + FS::BindTextureSampler( cmd, input_snapshot->texture, renderer.GetContext()->GetSamplerLibrary()->GetSampler( input_descriptor)); - FS::BindAlphaMaskSampler( - cmd, source_snapshot->texture, - renderer.GetContext()->GetSamplerLibrary()->GetSampler( - source_descriptor)); VS::BindFrameInfo(cmd, host_buffer.EmplaceUniform(frame_info)); - FS::BindFragInfo(cmd, host_buffer.EmplaceUniform(frag_info)); + FS::BindBlurInfo(cmd, host_buffer.EmplaceUniform(frag_info)); + + if (has_alpha_mask) { + FS::MaskInfo mask_info; + mask_info.src_factor = src_color_factor_; + mask_info.inner_blur_factor = inner_blur_factor_; + mask_info.outer_blur_factor = outer_blur_factor_; + + FS::BindAlphaMaskSampler( + cmd, source_snapshot->texture, + renderer.GetContext()->GetSamplerLibrary()->GetSampler( + source_descriptor)); + FS::BindMaskInfo(cmd, host_buffer.EmplaceUniform(mask_info)); + } return pass.AddCommand(cmd); }; diff --git a/impeller/entity/shaders/gaussian_blur.glsl b/impeller/entity/shaders/gaussian_blur/gaussian_blur.glsl similarity index 73% rename from impeller/entity/shaders/gaussian_blur.glsl rename to impeller/entity/shaders/gaussian_blur/gaussian_blur.glsl index 718b4826021c0..4a218303efc27 100644 --- a/impeller/entity/shaders/gaussian_blur.glsl +++ b/impeller/entity/shaders/gaussian_blur/gaussian_blur.glsl @@ -19,9 +19,8 @@ #include uniform sampler2D texture_sampler; -uniform sampler2D alpha_mask_sampler; -uniform FragInfo { +uniform BlurInfo { vec2 texture_size; vec2 blur_direction; @@ -31,12 +30,27 @@ uniform FragInfo { // radius is used to limit how much of the function is integrated. float blur_sigma; float blur_radius; +} +blur_info; + +#if ENABLE_ALPHA_MASK +uniform sampler2D alpha_mask_sampler; +uniform MaskInfo { float src_factor; float inner_blur_factor; float outer_blur_factor; } -frag_info; +mask_info; +#endif + +vec4 Sample(sampler2D tex, vec2 coords) { +#if ENABLE_DECAL_SPECIALIZATION + return IPSampleDecal(tex, coords); +#else + return texture(tex, coords); +#endif +} in vec2 v_texture_coords; in vec2 v_src_texture_coords; @@ -46,10 +60,10 @@ out vec4 frag_color; void main() { vec4 total_color = vec4(0); float gaussian_integral = 0; - vec2 blur_uv_offset = frag_info.blur_direction / frag_info.texture_size; + vec2 blur_uv_offset = blur_info.blur_direction / blur_info.texture_size; - for (float i = -frag_info.blur_radius; i <= frag_info.blur_radius; i++) { - float gaussian = IPGaussian(i, frag_info.blur_sigma); + for (float i = -blur_info.blur_radius; i <= blur_info.blur_radius; i++) { + float gaussian = IPGaussian(i, blur_info.blur_sigma); gaussian_integral += gaussian; total_color += gaussian * @@ -58,13 +72,15 @@ void main() { ); } - vec4 blur_color = total_color / gaussian_integral; + frag_color = total_color / gaussian_integral; +#if ENABLE_ALPHA_MASK vec4 src_color = Sample(alpha_mask_sampler, // sampler v_src_texture_coords // texture coordinates ); - float blur_factor = frag_info.inner_blur_factor * float(src_color.a > 0) + - frag_info.outer_blur_factor * float(src_color.a == 0); + float blur_factor = mask_info.inner_blur_factor * float(src_color.a > 0) + + mask_info.outer_blur_factor * float(src_color.a == 0); - frag_color = blur_color * blur_factor + src_color * frag_info.src_factor; + frag_color = frag_color * blur_factor + src_color * mask_info.src_factor; +#endif } diff --git a/impeller/entity/shaders/gaussian_blur.vert b/impeller/entity/shaders/gaussian_blur/gaussian_blur.vert similarity index 100% rename from impeller/entity/shaders/gaussian_blur.vert rename to impeller/entity/shaders/gaussian_blur/gaussian_blur.vert diff --git a/impeller/entity/shaders/gaussian_blur.frag b/impeller/entity/shaders/gaussian_blur/gaussian_blur_alpha_decal.frag similarity index 64% rename from impeller/entity/shaders/gaussian_blur.frag rename to impeller/entity/shaders/gaussian_blur/gaussian_blur_alpha_decal.frag index 8b483ae45de30..5c60a89545c43 100644 --- a/impeller/entity/shaders/gaussian_blur.frag +++ b/impeller/entity/shaders/gaussian_blur/gaussian_blur_alpha_decal.frag @@ -2,10 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include - -vec4 Sample(sampler2D tex, vec2 coords) { - return texture(tex, coords); -} +#define ENABLE_ALPHA_MASK 1 +#define ENABLE_DECAL_SPECIALIZATION 1 #include "gaussian_blur.glsl" diff --git a/impeller/entity/shaders/gaussian_blur_decal.frag b/impeller/entity/shaders/gaussian_blur/gaussian_blur_alpha_nodecal.frag similarity index 63% rename from impeller/entity/shaders/gaussian_blur_decal.frag rename to impeller/entity/shaders/gaussian_blur/gaussian_blur_alpha_nodecal.frag index c3076c7f7f902..90b21c10291dc 100644 --- a/impeller/entity/shaders/gaussian_blur_decal.frag +++ b/impeller/entity/shaders/gaussian_blur/gaussian_blur_alpha_nodecal.frag @@ -2,10 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include - -vec4 Sample(sampler2D tex, vec2 coords) { - return IPSampleDecal(tex, coords); -} +#define ENABLE_ALPHA_MASK 1 +#define ENABLE_DECAL_SPECIALIZATION 0 #include "gaussian_blur.glsl" diff --git a/impeller/entity/shaders/gaussian_blur/gaussian_blur_noalpha_decal.frag b/impeller/entity/shaders/gaussian_blur/gaussian_blur_noalpha_decal.frag new file mode 100644 index 0000000000000..57ae5a8a01e45 --- /dev/null +++ b/impeller/entity/shaders/gaussian_blur/gaussian_blur_noalpha_decal.frag @@ -0,0 +1,8 @@ +// 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. + +#define ENABLE_ALPHA_MASK 0 +#define ENABLE_DECAL_SPECIALIZATION 1 + +#include "gaussian_blur.glsl" diff --git a/impeller/entity/shaders/gaussian_blur/gaussian_blur_noalpha_nodecal.frag b/impeller/entity/shaders/gaussian_blur/gaussian_blur_noalpha_nodecal.frag new file mode 100644 index 0000000000000..3c556958eac60 --- /dev/null +++ b/impeller/entity/shaders/gaussian_blur/gaussian_blur_noalpha_nodecal.frag @@ -0,0 +1,8 @@ +// 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. + +#define ENABLE_ALPHA_MASK 0 +#define ENABLE_DECAL_SPECIALIZATION 0 + +#include "gaussian_blur.glsl" From be45814567252f77bfdc9362e96a4e324bd050b7 Mon Sep 17 00:00:00 2001 From: Brandon DeRosier Date: Tue, 28 Mar 2023 11:02:53 -0700 Subject: [PATCH 2/4] ... --- ci/licenses_golden/licenses_flutter | 66 ++++++++++++++++++++++++----- 1 file changed, 56 insertions(+), 10 deletions(-) diff --git a/ci/licenses_golden/licenses_flutter b/ci/licenses_golden/licenses_flutter index b07fa5cdf66ee..56a443059af79 100644 --- a/ci/licenses_golden/licenses_flutter +++ b/ci/licenses_golden/licenses_flutter @@ -1246,12 +1246,12 @@ ORIGIN: ../../../flutter/impeller/entity/shaders/color_matrix_color_filter.frag ORIGIN: ../../../flutter/impeller/entity/shaders/color_matrix_color_filter.vert + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/entity/shaders/conical_gradient_fill.frag + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/entity/shaders/conical_gradient_ssbo_fill.frag + ../../../flutter/LICENSE +ORIGIN: ../../../flutter/impeller/entity/shaders/gaussian_blur/gaussian_blur.glsl + ../../../flutter/LICENSE +ORIGIN: ../../../flutter/impeller/entity/shaders/gaussian_blur/gaussian_blur.vert + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/entity/shaders/gaussian_blur/gaussian_blur_alpha_decal.frag + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/entity/shaders/gaussian_blur/gaussian_blur_alpha_nodecal.frag + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/entity/shaders/gaussian_blur/gaussian_blur_noalpha_decal.frag + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/entity/shaders/gaussian_blur/gaussian_blur_noalpha_nodecal.frag + ../../../flutter/LICENSE -ORIGIN: ../../../flutter/impeller/entity/shaders/gaussian_blur/gaussian_blur.glsl + ../../../flutter/LICENSE -ORIGIN: ../../../flutter/impeller/entity/shaders/gaussian_blur/gaussian_blur.vert + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/entity/shaders/glyph_atlas.frag + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/entity/shaders/glyph_atlas.vert + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/entity/shaders/glyph_atlas_sdf.frag + ../../../flutter/LICENSE @@ -1317,6 +1317,19 @@ ORIGIN: ../../../flutter/impeller/geometry/type_traits.cc + ../../../flutter/LIC ORIGIN: ../../../flutter/impeller/geometry/type_traits.h + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/geometry/vector.cc + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/geometry/vector.h + ../../../flutter/LICENSE +ORIGIN: ../../../flutter/impeller/golden_tests/golden_digest.cc + ../../../flutter/LICENSE +ORIGIN: ../../../flutter/impeller/golden_tests/golden_digest.h + ../../../flutter/LICENSE +ORIGIN: ../../../flutter/impeller/golden_tests/golden_tests.cc + ../../../flutter/LICENSE +ORIGIN: ../../../flutter/impeller/golden_tests/main.cc + ../../../flutter/LICENSE +ORIGIN: ../../../flutter/impeller/golden_tests/metal_screenshot.h + ../../../flutter/LICENSE +ORIGIN: ../../../flutter/impeller/golden_tests/metal_screenshot.mm + ../../../flutter/LICENSE +ORIGIN: ../../../flutter/impeller/golden_tests/metal_screenshoter.h + ../../../flutter/LICENSE +ORIGIN: ../../../flutter/impeller/golden_tests/metal_screenshoter.mm + ../../../flutter/LICENSE +ORIGIN: ../../../flutter/impeller/golden_tests/working_directory.cc + ../../../flutter/LICENSE +ORIGIN: ../../../flutter/impeller/golden_tests/working_directory.h + ../../../flutter/LICENSE +ORIGIN: ../../../flutter/impeller/golden_tests_harvester/bin/golden_tests_harvester.dart + ../../../flutter/LICENSE +ORIGIN: ../../../flutter/impeller/golden_tests_harvester/lib/golden_tests_harvester.dart + ../../../flutter/LICENSE +ORIGIN: ../../../flutter/impeller/golden_tests_harvester/lib/logger.dart + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/image/backends/skia/compressed_image_skia.cc + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/image/backends/skia/compressed_image_skia.h + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/image/compressed_image.cc + ../../../flutter/LICENSE @@ -1422,12 +1435,22 @@ ORIGIN: ../../../flutter/impeller/renderer/backend/vulkan/command_buffer_vk.cc + ORIGIN: ../../../flutter/impeller/renderer/backend/vulkan/command_buffer_vk.h + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/renderer/backend/vulkan/command_encoder_vk.cc + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/renderer/backend/vulkan/command_encoder_vk.h + ../../../flutter/LICENSE +ORIGIN: ../../../flutter/impeller/renderer/backend/vulkan/command_pool_vk.cc + ../../../flutter/LICENSE +ORIGIN: ../../../flutter/impeller/renderer/backend/vulkan/command_pool_vk.h + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/renderer/backend/vulkan/context_vk.cc + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/renderer/backend/vulkan/context_vk.h + ../../../flutter/LICENSE +ORIGIN: ../../../flutter/impeller/renderer/backend/vulkan/debug_report_vk.cc + ../../../flutter/LICENSE +ORIGIN: ../../../flutter/impeller/renderer/backend/vulkan/debug_report_vk.h + ../../../flutter/LICENSE +ORIGIN: ../../../flutter/impeller/renderer/backend/vulkan/descriptor_pool_vk.cc + ../../../flutter/LICENSE +ORIGIN: ../../../flutter/impeller/renderer/backend/vulkan/descriptor_pool_vk.h + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/renderer/backend/vulkan/device_buffer_vk.cc + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/renderer/backend/vulkan/device_buffer_vk.h + ../../../flutter/LICENSE +ORIGIN: ../../../flutter/impeller/renderer/backend/vulkan/fence_waiter_vk.cc + ../../../flutter/LICENSE +ORIGIN: ../../../flutter/impeller/renderer/backend/vulkan/fence_waiter_vk.h + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/renderer/backend/vulkan/formats_vk.cc + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/renderer/backend/vulkan/formats_vk.h + ../../../flutter/LICENSE +ORIGIN: ../../../flutter/impeller/renderer/backend/vulkan/pipeline_cache_vk.cc + ../../../flutter/LICENSE +ORIGIN: ../../../flutter/impeller/renderer/backend/vulkan/pipeline_cache_vk.h + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/renderer/backend/vulkan/pipeline_library_vk.cc + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/renderer/backend/vulkan/pipeline_library_vk.h + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/renderer/backend/vulkan/pipeline_vk.cc + ../../../flutter/LICENSE @@ -1467,6 +1490,8 @@ ORIGIN: ../../../flutter/impeller/renderer/buffer.cc + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/renderer/buffer.h + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/renderer/buffer_view.cc + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/renderer/buffer_view.h + ../../../flutter/LICENSE +ORIGIN: ../../../flutter/impeller/renderer/capabilities.cc + ../../../flutter/LICENSE +ORIGIN: ../../../flutter/impeller/renderer/capabilities.h + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/renderer/command.cc + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/renderer/command.h + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/renderer/command_buffer.cc + ../../../flutter/LICENSE @@ -1481,13 +1506,10 @@ ORIGIN: ../../../flutter/impeller/renderer/compute_pipeline_descriptor.cc + ../. ORIGIN: ../../../flutter/impeller/renderer/compute_pipeline_descriptor.h + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/renderer/context.cc + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/renderer/context.h + ../../../flutter/LICENSE -ORIGIN: ../../../flutter/impeller/renderer/descriptor_set_layout.h + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/renderer/device_buffer.cc + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/renderer/device_buffer.h + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/renderer/device_buffer_descriptor.cc + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/renderer/device_buffer_descriptor.h + ../../../flutter/LICENSE -ORIGIN: ../../../flutter/impeller/renderer/device_capabilities.cc + ../../../flutter/LICENSE -ORIGIN: ../../../flutter/impeller/renderer/device_capabilities.h + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/renderer/formats.cc + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/renderer/formats.h + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/renderer/gpu_tracer.cc + ../../../flutter/LICENSE @@ -1646,6 +1668,7 @@ ORIGIN: ../../../flutter/lib/ui/dart_wrapper.h + ../../../flutter/LICENSE ORIGIN: ../../../flutter/lib/ui/experiments/scene.dart + ../../../flutter/LICENSE ORIGIN: ../../../flutter/lib/ui/experiments/setup_hooks.dart + ../../../flutter/LICENSE ORIGIN: ../../../flutter/lib/ui/experiments/ui.dart + ../../../flutter/LICENSE +ORIGIN: ../../../flutter/lib/ui/floating_point.h + ../../../flutter/LICENSE ORIGIN: ../../../flutter/lib/ui/geometry.dart + ../../../flutter/LICENSE ORIGIN: ../../../flutter/lib/ui/hash_codes.dart + ../../../flutter/LICENSE ORIGIN: ../../../flutter/lib/ui/hooks.dart + ../../../flutter/LICENSE @@ -3788,12 +3811,12 @@ FILE: ../../../flutter/impeller/entity/shaders/color_matrix_color_filter.frag FILE: ../../../flutter/impeller/entity/shaders/color_matrix_color_filter.vert FILE: ../../../flutter/impeller/entity/shaders/conical_gradient_fill.frag FILE: ../../../flutter/impeller/entity/shaders/conical_gradient_ssbo_fill.frag +FILE: ../../../flutter/impeller/entity/shaders/gaussian_blur/gaussian_blur.glsl +FILE: ../../../flutter/impeller/entity/shaders/gaussian_blur/gaussian_blur.vert FILE: ../../../flutter/impeller/entity/shaders/gaussian_blur/gaussian_blur_alpha_decal.frag FILE: ../../../flutter/impeller/entity/shaders/gaussian_blur/gaussian_blur_alpha_nodecal.frag FILE: ../../../flutter/impeller/entity/shaders/gaussian_blur/gaussian_blur_noalpha_decal.frag FILE: ../../../flutter/impeller/entity/shaders/gaussian_blur/gaussian_blur_noalpha_nodecal.frag -FILE: ../../../flutter/impeller/entity/shaders/gaussian_blur/gaussian_blur.glsl -FILE: ../../../flutter/impeller/entity/shaders/gaussian_blur/gaussian_blur.vert FILE: ../../../flutter/impeller/entity/shaders/glyph_atlas.frag FILE: ../../../flutter/impeller/entity/shaders/glyph_atlas.vert FILE: ../../../flutter/impeller/entity/shaders/glyph_atlas_sdf.frag @@ -3859,6 +3882,19 @@ FILE: ../../../flutter/impeller/geometry/type_traits.cc FILE: ../../../flutter/impeller/geometry/type_traits.h FILE: ../../../flutter/impeller/geometry/vector.cc FILE: ../../../flutter/impeller/geometry/vector.h +FILE: ../../../flutter/impeller/golden_tests/golden_digest.cc +FILE: ../../../flutter/impeller/golden_tests/golden_digest.h +FILE: ../../../flutter/impeller/golden_tests/golden_tests.cc +FILE: ../../../flutter/impeller/golden_tests/main.cc +FILE: ../../../flutter/impeller/golden_tests/metal_screenshot.h +FILE: ../../../flutter/impeller/golden_tests/metal_screenshot.mm +FILE: ../../../flutter/impeller/golden_tests/metal_screenshoter.h +FILE: ../../../flutter/impeller/golden_tests/metal_screenshoter.mm +FILE: ../../../flutter/impeller/golden_tests/working_directory.cc +FILE: ../../../flutter/impeller/golden_tests/working_directory.h +FILE: ../../../flutter/impeller/golden_tests_harvester/bin/golden_tests_harvester.dart +FILE: ../../../flutter/impeller/golden_tests_harvester/lib/golden_tests_harvester.dart +FILE: ../../../flutter/impeller/golden_tests_harvester/lib/logger.dart FILE: ../../../flutter/impeller/image/backends/skia/compressed_image_skia.cc FILE: ../../../flutter/impeller/image/backends/skia/compressed_image_skia.h FILE: ../../../flutter/impeller/image/compressed_image.cc @@ -3964,12 +4000,22 @@ FILE: ../../../flutter/impeller/renderer/backend/vulkan/command_buffer_vk.cc FILE: ../../../flutter/impeller/renderer/backend/vulkan/command_buffer_vk.h FILE: ../../../flutter/impeller/renderer/backend/vulkan/command_encoder_vk.cc FILE: ../../../flutter/impeller/renderer/backend/vulkan/command_encoder_vk.h +FILE: ../../../flutter/impeller/renderer/backend/vulkan/command_pool_vk.cc +FILE: ../../../flutter/impeller/renderer/backend/vulkan/command_pool_vk.h FILE: ../../../flutter/impeller/renderer/backend/vulkan/context_vk.cc FILE: ../../../flutter/impeller/renderer/backend/vulkan/context_vk.h +FILE: ../../../flutter/impeller/renderer/backend/vulkan/debug_report_vk.cc +FILE: ../../../flutter/impeller/renderer/backend/vulkan/debug_report_vk.h +FILE: ../../../flutter/impeller/renderer/backend/vulkan/descriptor_pool_vk.cc +FILE: ../../../flutter/impeller/renderer/backend/vulkan/descriptor_pool_vk.h FILE: ../../../flutter/impeller/renderer/backend/vulkan/device_buffer_vk.cc FILE: ../../../flutter/impeller/renderer/backend/vulkan/device_buffer_vk.h +FILE: ../../../flutter/impeller/renderer/backend/vulkan/fence_waiter_vk.cc +FILE: ../../../flutter/impeller/renderer/backend/vulkan/fence_waiter_vk.h FILE: ../../../flutter/impeller/renderer/backend/vulkan/formats_vk.cc FILE: ../../../flutter/impeller/renderer/backend/vulkan/formats_vk.h +FILE: ../../../flutter/impeller/renderer/backend/vulkan/pipeline_cache_vk.cc +FILE: ../../../flutter/impeller/renderer/backend/vulkan/pipeline_cache_vk.h FILE: ../../../flutter/impeller/renderer/backend/vulkan/pipeline_library_vk.cc FILE: ../../../flutter/impeller/renderer/backend/vulkan/pipeline_library_vk.h FILE: ../../../flutter/impeller/renderer/backend/vulkan/pipeline_vk.cc @@ -4009,6 +4055,8 @@ FILE: ../../../flutter/impeller/renderer/buffer.cc FILE: ../../../flutter/impeller/renderer/buffer.h FILE: ../../../flutter/impeller/renderer/buffer_view.cc FILE: ../../../flutter/impeller/renderer/buffer_view.h +FILE: ../../../flutter/impeller/renderer/capabilities.cc +FILE: ../../../flutter/impeller/renderer/capabilities.h FILE: ../../../flutter/impeller/renderer/command.cc FILE: ../../../flutter/impeller/renderer/command.h FILE: ../../../flutter/impeller/renderer/command_buffer.cc @@ -4023,13 +4071,10 @@ FILE: ../../../flutter/impeller/renderer/compute_pipeline_descriptor.cc FILE: ../../../flutter/impeller/renderer/compute_pipeline_descriptor.h FILE: ../../../flutter/impeller/renderer/context.cc FILE: ../../../flutter/impeller/renderer/context.h -FILE: ../../../flutter/impeller/renderer/descriptor_set_layout.h FILE: ../../../flutter/impeller/renderer/device_buffer.cc FILE: ../../../flutter/impeller/renderer/device_buffer.h FILE: ../../../flutter/impeller/renderer/device_buffer_descriptor.cc FILE: ../../../flutter/impeller/renderer/device_buffer_descriptor.h -FILE: ../../../flutter/impeller/renderer/device_capabilities.cc -FILE: ../../../flutter/impeller/renderer/device_capabilities.h FILE: ../../../flutter/impeller/renderer/formats.cc FILE: ../../../flutter/impeller/renderer/formats.h FILE: ../../../flutter/impeller/renderer/gpu_tracer.cc @@ -4190,6 +4235,7 @@ FILE: ../../../flutter/lib/ui/dart_wrapper.h FILE: ../../../flutter/lib/ui/experiments/scene.dart FILE: ../../../flutter/lib/ui/experiments/setup_hooks.dart FILE: ../../../flutter/lib/ui/experiments/ui.dart +FILE: ../../../flutter/lib/ui/floating_point.h FILE: ../../../flutter/lib/ui/geometry.dart FILE: ../../../flutter/lib/ui/hash_codes.dart FILE: ../../../flutter/lib/ui/hooks.dart From cfa9971fe3ce6915d6fb01ec845a97fed37002f3 Mon Sep 17 00:00:00 2001 From: Brandon DeRosier Date: Tue, 28 Mar 2023 11:04:28 -0700 Subject: [PATCH 3/4] Malioc --- impeller/tools/malioc.json | 650 ------------------------------------- 1 file changed, 650 deletions(-) diff --git a/impeller/tools/malioc.json b/impeller/tools/malioc.json index 9d800cc43c0ab..62e7c4575565e 100644 --- a/impeller/tools/malioc.json +++ b/impeller/tools/malioc.json @@ -3154,262 +3154,6 @@ } } }, - "flutter/impeller/entity/gaussian_blur.frag.vkspv": { - "Mali-G78": { - "core": "Mali-G78", - "filename": "flutter/impeller/entity/gaussian_blur.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": 47, - "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": [ - "varying", - "texture" - ], - "shortest_path_cycles": [ - 0.15625, - 0.09375, - 0.15625, - 0.0625, - 0.0, - 0.25, - 0.25 - ], - "total_bound_pipelines": [ - "varying", - "texture" - ], - "total_cycles": [ - 0.265625, - 0.265625, - 0.25, - 0.125, - 0.0, - 0.5, - 0.5 - ] - }, - "stack_spill_bytes": 0, - "thread_occupancy": 100, - "uniform_registers_used": 14, - "work_registers_used": 15 - } - } - } - }, - "flutter/impeller/entity/gaussian_blur.vert.vkspv": { - "Mali-G78": { - "core": "Mali-G78", - "filename": "flutter/impeller/entity/gaussian_blur.vert.vkspv", - "has_uniform_computation": true, - "type": "Vertex", - "variants": { - "Position": { - "fp16_arithmetic": 100, - "has_stack_spilling": false, - "performance": { - "longest_path_bound_pipelines": [ - "load_store" - ], - "longest_path_cycles": [ - 0.0625, - 0.0625, - 0.0625, - 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.0625, - 0.0625, - 0.0625, - 0.0, - 2.0, - 0.0 - ], - "total_bound_pipelines": [ - "load_store" - ], - "total_cycles": [ - 0.0625, - 0.0625, - 0.0625, - 0.0, - 2.0, - 0.0 - ] - }, - "stack_spill_bytes": 0, - "thread_occupancy": 100, - "uniform_registers_used": 20, - "work_registers_used": 32 - }, - "Varying": { - "fp16_arithmetic": 100, - "has_stack_spilling": false, - "performance": { - "longest_path_bound_pipelines": [ - "load_store" - ], - "longest_path_cycles": [ - 0.0625, - 0.03125, - 0.0625, - 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.0625, - 0.03125, - 0.0625, - 0.0, - 4.0, - 0.0 - ], - "total_bound_pipelines": [ - "load_store" - ], - "total_cycles": [ - 0.0625, - 0.03125, - 0.0625, - 0.0, - 4.0, - 0.0 - ] - }, - "stack_spill_bytes": 0, - "thread_occupancy": 100, - "uniform_registers_used": 16, - "work_registers_used": 8 - } - } - } - }, - "flutter/impeller/entity/gaussian_blur_decal.frag.vkspv": { - "Mali-G78": { - "core": "Mali-G78", - "filename": "flutter/impeller/entity/gaussian_blur_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": 55, - "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.3125, - 0.09375, - 0.3125, - 0.25, - 0.0, - 0.25, - 0.0 - ], - "total_bound_pipelines": [ - "arith_total", - "arith_cvt" - ], - "total_cycles": [ - 0.515625, - 0.265625, - 0.515625, - 0.5, - 0.0, - 0.5, - 0.5 - ] - }, - "stack_spill_bytes": 0, - "thread_occupancy": 100, - "uniform_registers_used": 12, - "work_registers_used": 20 - } - } - } - }, "flutter/impeller/entity/gles/advanced_blend.vert.gles": { "Mali-G78": { "core": "Mali-G78", @@ -6322,400 +6066,6 @@ } } }, - "flutter/impeller/entity/gles/gaussian_blur.frag.gles": { - "Mali-G78": { - "core": "Mali-G78", - "filename": "flutter/impeller/entity/gles/gaussian_blur.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": 76, - "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": [ - "varying", - "texture" - ], - "shortest_path_cycles": [ - 0.109375, - 0.109375, - 0.09375, - 0.0625, - 0.0, - 0.25, - 0.25 - ], - "total_bound_pipelines": [ - "varying", - "texture" - ], - "total_cycles": [ - 0.3125, - 0.3125, - 0.21875, - 0.125, - 0.0, - 0.5, - 0.5 - ] - }, - "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/gaussian_blur.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" - ], - "shortest_path_cycles": [ - 2.9700000286102295, - 2.0, - 1.0 - ], - "total_bound_pipelines": [ - "arithmetic" - ], - "total_cycles": [ - 5.0, - 2.0, - 2.0 - ] - }, - "thread_occupancy": 100, - "uniform_registers_used": 2, - "work_registers_used": 3 - } - } - } - }, - "flutter/impeller/entity/gles/gaussian_blur.vert.gles": { - "Mali-G78": { - "core": "Mali-G78", - "filename": "flutter/impeller/entity/gles/gaussian_blur.vert.gles", - "has_uniform_computation": true, - "type": "Vertex", - "variants": { - "Position": { - "fp16_arithmetic": 80, - "has_stack_spilling": false, - "performance": { - "longest_path_bound_pipelines": [ - "load_store" - ], - "longest_path_cycles": [ - 0.078125, - 0.078125, - 0.046875, - 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.078125, - 0.078125, - 0.046875, - 0.0, - 2.0, - 0.0 - ], - "total_bound_pipelines": [ - "load_store" - ], - "total_cycles": [ - 0.078125, - 0.078125, - 0.046875, - 0.0, - 2.0, - 0.0 - ] - }, - "stack_spill_bytes": 0, - "thread_occupancy": 100, - "uniform_registers_used": 16, - "work_registers_used": 32 - }, - "Varying": { - "fp16_arithmetic": 100, - "has_stack_spilling": false, - "performance": { - "longest_path_bound_pipelines": [ - "load_store" - ], - "longest_path_cycles": [ - 0.0625, - 0.03125, - 0.0625, - 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.0625, - 0.03125, - 0.0625, - 0.0, - 4.0, - 0.0 - ], - "total_bound_pipelines": [ - "load_store" - ], - "total_cycles": [ - 0.0625, - 0.03125, - 0.0625, - 0.0, - 4.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/gaussian_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": [ - 3.299999952316284, - 7.0, - 0.0 - ], - "pipelines": [ - "arithmetic", - "load_store", - "texture" - ], - "shortest_path_bound_pipelines": [ - "load_store" - ], - "shortest_path_cycles": [ - 3.299999952316284, - 7.0, - 0.0 - ], - "total_bound_pipelines": [ - "load_store" - ], - "total_cycles": [ - 3.3333332538604736, - 7.0, - 0.0 - ] - }, - "thread_occupancy": 100, - "uniform_registers_used": 4, - "work_registers_used": 3 - } - } - } - }, - "flutter/impeller/entity/gles/gaussian_blur_decal.frag.gles": { - "Mali-G78": { - "core": "Mali-G78", - "filename": "flutter/impeller/entity/gles/gaussian_blur_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, - "variants": { - "Main": { - "fp16_arithmetic": 79, - "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_sfu", - "varying" - ], - "shortest_path_cycles": [ - 0.25, - 0.109375, - 0.1875, - 0.25, - 0.0, - 0.25, - 0.0 - ], - "total_bound_pipelines": [ - "arith_total", - "arith_sfu", - "varying", - "texture" - ], - "total_cycles": [ - 0.5, - 0.3125, - 0.421875, - 0.5, - 0.0, - 0.5, - 0.5 - ] - }, - "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/gaussian_blur_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" - ], - "shortest_path_cycles": [ - 4.289999961853027, - 2.0, - 0.0 - ], - "total_bound_pipelines": [ - "arithmetic" - ], - "total_cycles": [ - 8.333333015441895, - 2.0, - 2.0 - ] - }, - "thread_occupancy": 100, - "uniform_registers_used": 2, - "work_registers_used": 4 - } - } - } - }, "flutter/impeller/entity/gles/glyph_atlas.frag.gles": { "Mali-G78": { "core": "Mali-G78", From 3c540c9d79f2bb2c32866a7a1c5c79ff5c30e21b Mon Sep 17 00:00:00 2001 From: Brandon DeRosier Date: Tue, 28 Mar 2023 16:34:12 -0700 Subject: [PATCH 4/4] Malioc redux --- impeller/tools/malioc.json | 2467 +++++++++++++++++++++++++----------- 1 file changed, 1748 insertions(+), 719 deletions(-) diff --git a/impeller/tools/malioc.json b/impeller/tools/malioc.json index 62e7c4575565e..d9e3b4b4226ea 100644 --- a/impeller/tools/malioc.json +++ b/impeller/tools/malioc.json @@ -3154,24 +3154,24 @@ } } }, - "flutter/impeller/entity/gles/advanced_blend.vert.gles": { + "flutter/impeller/entity/gaussian_blur.vert.vkspv": { "Mali-G78": { "core": "Mali-G78", - "filename": "flutter/impeller/entity/gles/advanced_blend.vert.gles", + "filename": "flutter/impeller/entity/gaussian_blur.vert.vkspv", "has_uniform_computation": true, "type": "Vertex", "variants": { "Position": { - "fp16_arithmetic": 80, + "fp16_arithmetic": 100, "has_stack_spilling": false, "performance": { "longest_path_bound_pipelines": [ "load_store" ], "longest_path_cycles": [ - 0.078125, - 0.078125, - 0.046875, + 0.0625, + 0.0625, + 0.0625, 0.0, 2.0, 0.0 @@ -3188,9 +3188,9 @@ "load_store" ], "shortest_path_cycles": [ - 0.078125, - 0.078125, - 0.046875, + 0.0625, + 0.0625, + 0.0625, 0.0, 2.0, 0.0 @@ -3199,9 +3199,9 @@ "load_store" ], "total_cycles": [ - 0.078125, - 0.078125, - 0.046875, + 0.0625, + 0.0625, + 0.0625, 0.0, 2.0, 0.0 @@ -3209,7 +3209,7 @@ }, "stack_spill_bytes": 0, "thread_occupancy": 100, - "uniform_registers_used": 16, + "uniform_registers_used": 20, "work_registers_used": 32 }, "Varying": { @@ -3260,61 +3260,88 @@ }, "stack_spill_bytes": 0, "thread_occupancy": 100, - "uniform_registers_used": 10, + "uniform_registers_used": 16, "work_registers_used": 8 } } - }, - "Mali-T880": { - "core": "Mali-T880", - "filename": "flutter/impeller/entity/gles/advanced_blend.vert.gles", - "has_uniform_computation": false, - "type": "Vertex", + } + }, + "flutter/impeller/entity/gaussian_blur_alpha_decal.frag.vkspv": { + "Mali-G78": { + "core": "Mali-G78", + "filename": "flutter/impeller/entity/gaussian_blur_alpha_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": 55, "has_stack_spilling": false, "performance": { "longest_path_bound_pipelines": [ - "load_store" + null ], "longest_path_cycles": [ - 3.299999952316284, - 7.0, - 0.0 + null, + null, + null, + null, + null, + null, + null ], "pipelines": [ - "arithmetic", + "arith_total", + "arith_fma", + "arith_cvt", + "arith_sfu", "load_store", + "varying", "texture" ], "shortest_path_bound_pipelines": [ - "load_store" + "arith_total", + "arith_cvt" ], "shortest_path_cycles": [ - 3.299999952316284, - 7.0, + 0.3125, + 0.09375, + 0.3125, + 0.25, + 0.0, + 0.25, 0.0 ], "total_bound_pipelines": [ - "load_store" + "arith_total", + "arith_cvt" ], "total_cycles": [ - 3.3333332538604736, - 7.0, - 0.0 + 0.515625, + 0.265625, + 0.515625, + 0.5, + 0.0, + 0.5, + 0.5 ] }, + "stack_spill_bytes": 0, "thread_occupancy": 100, - "uniform_registers_used": 4, - "work_registers_used": 3 + "uniform_registers_used": 12, + "work_registers_used": 20 } } } }, - "flutter/impeller/entity/gles/advanced_blend_color.frag.gles": { + "flutter/impeller/entity/gaussian_blur_alpha_nodecal.frag.vkspv": { "Mali-G78": { "core": "Mali-G78", - "filename": "flutter/impeller/entity/gles/advanced_blend_color.frag.gles", + "filename": "flutter/impeller/entity/gaussian_blur_alpha_nodecal.frag.vkspv", "has_side_effects": false, "has_uniform_computation": true, "modifies_coverage": false, @@ -3324,21 +3351,20 @@ "uses_late_zs_update": false, "variants": { "Main": { - "fp16_arithmetic": 82, + "fp16_arithmetic": 47, "has_stack_spilling": false, "performance": { "longest_path_bound_pipelines": [ - "arith_total", - "arith_fma" + null ], "longest_path_cycles": [ - 0.65625, - 0.65625, - 0.53125, - 0.625, - 0.0, - 0.5, - 0.5 + null, + null, + null, + null, + null, + null, + null ], "pipelines": [ "arith_total", @@ -3350,27 +3376,27 @@ "texture" ], "shortest_path_bound_pipelines": [ - "arith_total", - "arith_cvt" + "varying", + "texture" ], "shortest_path_cycles": [ - 0.375, - 0.328125, - 0.375, - 0.25, + 0.15625, + 0.09375, + 0.15625, + 0.0625, 0.0, 0.25, - 0.0 + 0.25 ], "total_bound_pipelines": [ - "arith_total", - "arith_fma" + "varying", + "texture" ], "total_cycles": [ - 0.65625, - 0.65625, - 0.578125, - 0.625, + 0.265625, + 0.265625, + 0.25, + 0.125, 0.0, 0.5, 0.5 @@ -3378,61 +3404,88 @@ }, "stack_spill_bytes": 0, "thread_occupancy": 100, - "uniform_registers_used": 12, - "work_registers_used": 20 + "uniform_registers_used": 14, + "work_registers_used": 15 } } - }, - "Mali-T880": { - "core": "Mali-T880", - "filename": "flutter/impeller/entity/gles/advanced_blend_color.frag.gles", - "has_uniform_computation": false, + } + }, + "flutter/impeller/entity/gaussian_blur_noalpha_decal.frag.vkspv": { + "Mali-G78": { + "core": "Mali-G78", + "filename": "flutter/impeller/entity/gaussian_blur_noalpha_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": 42, "has_stack_spilling": false, "performance": { "longest_path_bound_pipelines": [ - "arithmetic" + null ], "longest_path_cycles": [ - 9.899999618530273, - 2.0, - 2.0 + null, + null, + null, + null, + null, + null, + null ], "pipelines": [ - "arithmetic", + "arith_total", + "arith_fma", + "arith_cvt", + "arith_sfu", "load_store", + "varying", "texture" ], "shortest_path_bound_pipelines": [ - "arithmetic" + "arith_total", + "arith_cvt" ], "shortest_path_cycles": [ - 5.940000057220459, - 1.0, + 0.109375, + 0.03125, + 0.109375, + 0.0625, + 0.0, + 0.0, 0.0 ], "total_bound_pipelines": [ - "arithmetic" + "arith_total", + "arith_sfu" ], "total_cycles": [ - 11.0, - 2.0, - 2.0 + 0.3125, + 0.203125, + 0.296875, + 0.3125, + 0.0, + 0.25, + 0.25 ] }, + "stack_spill_bytes": 0, "thread_occupancy": 100, - "uniform_registers_used": 1, - "work_registers_used": 3 + "uniform_registers_used": 10, + "work_registers_used": 16 } } } }, - "flutter/impeller/entity/gles/advanced_blend_colorburn.frag.gles": { + "flutter/impeller/entity/gaussian_blur_noalpha_nodecal.frag.vkspv": { "Mali-G78": { "core": "Mali-G78", - "filename": "flutter/impeller/entity/gles/advanced_blend_colorburn.frag.gles", + "filename": "flutter/impeller/entity/gaussian_blur_noalpha_nodecal.frag.vkspv", "has_side_effects": false, "has_uniform_computation": true, "modifies_coverage": false, @@ -3442,21 +3495,20 @@ "uses_late_zs_update": false, "variants": { "Main": { - "fp16_arithmetic": 100, + "fp16_arithmetic": 35, "has_stack_spilling": false, "performance": { "longest_path_bound_pipelines": [ - "arith_total", - "arith_sfu" + null ], "longest_path_cycles": [ - 0.6875, - 0.265625, - 0.675000011920929, - 0.6875, - 0.0, - 0.5, - 0.5 + null, + null, + null, + null, + null, + null, + null ], "pipelines": [ "arith_total", @@ -3472,109 +3524,108 @@ "arith_cvt" ], "shortest_path_cycles": [ - 0.515625, - 0.234375, - 0.515625, - 0.4375, + 0.109375, + 0.03125, + 0.109375, + 0.0625, + 0.0, 0.0, - 0.25, 0.0 ], "total_bound_pipelines": [ - "arith_total", - "arith_cvt" + "varying", + "texture" ], "total_cycles": [ - 0.71875, - 0.265625, - 0.71875, - 0.6875, + 0.203125, + 0.203125, + 0.203125, + 0.125, 0.0, - 0.5, - 0.5 + 0.25, + 0.25 ] }, "stack_spill_bytes": 0, "thread_occupancy": 100, "uniform_registers_used": 10, - "work_registers_used": 26 + "work_registers_used": 13 } } - }, - "Mali-T880": { - "core": "Mali-T880", - "filename": "flutter/impeller/entity/gles/advanced_blend_colorburn.frag.gles", - "has_uniform_computation": false, - "type": "Fragment", + } + }, + "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": { - "Main": { + "Position": { + "fp16_arithmetic": 80, "has_stack_spilling": false, "performance": { "longest_path_bound_pipelines": [ - "arithmetic" + "load_store" ], "longest_path_cycles": [ - 10.5600004196167, + 0.078125, + 0.078125, + 0.046875, + 0.0, 2.0, - 2.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": [ - 8.25, - 1.0, + 0.078125, + 0.078125, + 0.046875, + 0.0, + 2.0, 0.0 ], "total_bound_pipelines": [ - "arithmetic" + "load_store" ], "total_cycles": [ - 11.333333015441895, + 0.078125, + 0.078125, + 0.046875, + 0.0, 2.0, - 2.0 + 0.0 ] }, + "stack_spill_bytes": 0, "thread_occupancy": 100, - "uniform_registers_used": 1, - "work_registers_used": 3 - } - } - } - }, - "flutter/impeller/entity/gles/advanced_blend_colordodge.frag.gles": { - "Mali-G78": { - "core": "Mali-G78", - "filename": "flutter/impeller/entity/gles/advanced_blend_colordodge.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": { + "uniform_registers_used": 16, + "work_registers_used": 32 + }, + "Varying": { "fp16_arithmetic": 100, "has_stack_spilling": false, "performance": { "longest_path_bound_pipelines": [ - "arith_total", - "arith_sfu" + "load_store" ], "longest_path_cycles": [ - 0.6875, - 0.234375, - 0.675000011920929, - 0.6875, + 0.0625, + 0.03125, + 0.0625, 0.0, - 0.5, - 0.5 + 4.0, + 0.0 ], "pipelines": [ "arith_total", @@ -3582,59 +3633,54 @@ "arith_cvt", "arith_sfu", "load_store", - "varying", "texture" ], "shortest_path_bound_pipelines": [ - "arith_total", - "arith_cvt" + "load_store" ], "shortest_path_cycles": [ - 0.515625, - 0.203125, - 0.515625, - 0.4375, + 0.0625, + 0.03125, + 0.0625, 0.0, - 0.25, + 4.0, 0.0 ], "total_bound_pipelines": [ - "arith_total", - "arith_cvt" + "load_store" ], "total_cycles": [ - 0.71875, - 0.234375, - 0.71875, - 0.6875, + 0.0625, + 0.03125, + 0.0625, 0.0, - 0.5, - 0.5 + 4.0, + 0.0 ] }, "stack_spill_bytes": 0, "thread_occupancy": 100, "uniform_registers_used": 10, - "work_registers_used": 26 + "work_registers_used": 8 } } }, "Mali-T880": { "core": "Mali-T880", - "filename": "flutter/impeller/entity/gles/advanced_blend_colordodge.frag.gles", + "filename": "flutter/impeller/entity/gles/advanced_blend.vert.gles", "has_uniform_computation": false, - "type": "Fragment", + "type": "Vertex", "variants": { "Main": { "has_stack_spilling": false, "performance": { "longest_path_bound_pipelines": [ - "arithmetic" + "load_store" ], "longest_path_cycles": [ - 10.229999542236328, - 2.0, - 2.0 + 3.299999952316284, + 7.0, + 0.0 ], "pipelines": [ "arithmetic", @@ -3642,33 +3688,33 @@ "texture" ], "shortest_path_bound_pipelines": [ - "arithmetic" + "load_store" ], "shortest_path_cycles": [ - 7.920000076293945, - 1.0, + 3.299999952316284, + 7.0, 0.0 ], "total_bound_pipelines": [ - "arithmetic" + "load_store" ], "total_cycles": [ - 11.0, - 2.0, - 2.0 + 3.3333332538604736, + 7.0, + 0.0 ] }, "thread_occupancy": 100, - "uniform_registers_used": 1, + "uniform_registers_used": 4, "work_registers_used": 3 } } } }, - "flutter/impeller/entity/gles/advanced_blend_darken.frag.gles": { + "flutter/impeller/entity/gles/advanced_blend_color.frag.gles": { "Mali-G78": { "core": "Mali-G78", - "filename": "flutter/impeller/entity/gles/advanced_blend_darken.frag.gles", + "filename": "flutter/impeller/entity/gles/advanced_blend_color.frag.gles", "has_side_effects": false, "has_uniform_computation": true, "modifies_coverage": false, @@ -3678,20 +3724,18 @@ "uses_late_zs_update": false, "variants": { "Main": { - "fp16_arithmetic": 100, + "fp16_arithmetic": 82, "has_stack_spilling": false, "performance": { "longest_path_bound_pipelines": [ "arith_total", - "arith_sfu", - "varying", - "texture" + "arith_fma" ], "longest_path_cycles": [ - 0.5, - 0.171875, - 0.4375, - 0.5, + 0.65625, + 0.65625, + 0.53125, + 0.625, 0.0, 0.5, 0.5 @@ -3710,9 +3754,9 @@ "arith_cvt" ], "shortest_path_cycles": [ - 0.28125, - 0.140625, - 0.28125, + 0.375, + 0.328125, + 0.375, 0.25, 0.0, 0.25, @@ -3720,15 +3764,13 @@ ], "total_bound_pipelines": [ "arith_total", - "arith_sfu", - "varying", - "texture" + "arith_fma" ], "total_cycles": [ - 0.5, - 0.171875, - 0.484375, - 0.5, + 0.65625, + 0.65625, + 0.578125, + 0.625, 0.0, 0.5, 0.5 @@ -3736,14 +3778,14 @@ }, "stack_spill_bytes": 0, "thread_occupancy": 100, - "uniform_registers_used": 8, + "uniform_registers_used": 12, "work_registers_used": 20 } } }, "Mali-T880": { "core": "Mali-T880", - "filename": "flutter/impeller/entity/gles/advanced_blend_darken.frag.gles", + "filename": "flutter/impeller/entity/gles/advanced_blend_color.frag.gles", "has_uniform_computation": false, "type": "Fragment", "variants": { @@ -3754,7 +3796,7 @@ "arithmetic" ], "longest_path_cycles": [ - 5.940000057220459, + 9.899999618530273, 2.0, 2.0 ], @@ -3767,7 +3809,7 @@ "arithmetic" ], "shortest_path_cycles": [ - 3.299999952316284, + 5.940000057220459, 1.0, 0.0 ], @@ -3775,22 +3817,22 @@ "arithmetic" ], "total_cycles": [ - 6.666666507720947, + 11.0, 2.0, 2.0 ] }, "thread_occupancy": 100, "uniform_registers_used": 1, - "work_registers_used": 2 + "work_registers_used": 3 } } } }, - "flutter/impeller/entity/gles/advanced_blend_difference.frag.gles": { + "flutter/impeller/entity/gles/advanced_blend_colorburn.frag.gles": { "Mali-G78": { "core": "Mali-G78", - "filename": "flutter/impeller/entity/gles/advanced_blend_difference.frag.gles", + "filename": "flutter/impeller/entity/gles/advanced_blend_colorburn.frag.gles", "has_side_effects": false, "has_uniform_computation": true, "modifies_coverage": false, @@ -3805,15 +3847,13 @@ "performance": { "longest_path_bound_pipelines": [ "arith_total", - "arith_sfu", - "varying", - "texture" + "arith_sfu" ], "longest_path_cycles": [ - 0.5, - 0.203125, - 0.40625, - 0.5, + 0.6875, + 0.265625, + 0.675000011920929, + 0.6875, 0.0, 0.5, 0.5 @@ -3829,30 +3869,26 @@ ], "shortest_path_bound_pipelines": [ "arith_total", - "arith_cvt", - "arith_sfu", - "varying" + "arith_cvt" ], "shortest_path_cycles": [ - 0.25, - 0.171875, - 0.25, - 0.25, + 0.515625, + 0.234375, + 0.515625, + 0.4375, 0.0, 0.25, 0.0 ], "total_bound_pipelines": [ "arith_total", - "arith_sfu", - "varying", - "texture" + "arith_cvt" ], "total_cycles": [ - 0.5, - 0.203125, - 0.453125, - 0.5, + 0.71875, + 0.265625, + 0.71875, + 0.6875, 0.0, 0.5, 0.5 @@ -3860,14 +3896,14 @@ }, "stack_spill_bytes": 0, "thread_occupancy": 100, - "uniform_registers_used": 8, - "work_registers_used": 20 + "uniform_registers_used": 10, + "work_registers_used": 26 } } }, "Mali-T880": { "core": "Mali-T880", - "filename": "flutter/impeller/entity/gles/advanced_blend_difference.frag.gles", + "filename": "flutter/impeller/entity/gles/advanced_blend_colorburn.frag.gles", "has_uniform_computation": false, "type": "Fragment", "variants": { @@ -3878,7 +3914,7 @@ "arithmetic" ], "longest_path_cycles": [ - 5.940000057220459, + 10.5600004196167, 2.0, 2.0 ], @@ -3891,7 +3927,7 @@ "arithmetic" ], "shortest_path_cycles": [ - 3.299999952316284, + 8.25, 1.0, 0.0 ], @@ -3899,22 +3935,22 @@ "arithmetic" ], "total_cycles": [ - 6.666666507720947, + 11.333333015441895, 2.0, 2.0 ] }, "thread_occupancy": 100, "uniform_registers_used": 1, - "work_registers_used": 2 + "work_registers_used": 3 } } } }, - "flutter/impeller/entity/gles/advanced_blend_exclusion.frag.gles": { + "flutter/impeller/entity/gles/advanced_blend_colordodge.frag.gles": { "Mali-G78": { "core": "Mali-G78", - "filename": "flutter/impeller/entity/gles/advanced_blend_exclusion.frag.gles", + "filename": "flutter/impeller/entity/gles/advanced_blend_colordodge.frag.gles", "has_side_effects": false, "has_uniform_computation": true, "modifies_coverage": false, @@ -3929,16 +3965,14 @@ "performance": { "longest_path_bound_pipelines": [ "arith_total", - "arith_sfu", - "varying", - "texture" + "arith_sfu" ], "longest_path_cycles": [ - 0.5, - 0.265625, - 0.40625, - 0.5, - 0.0, + 0.6875, + 0.234375, + 0.675000011920929, + 0.6875, + 0.0, 0.5, 0.5 ], @@ -3953,30 +3987,26 @@ ], "shortest_path_bound_pipelines": [ "arith_total", - "arith_cvt", - "arith_sfu", - "varying" + "arith_cvt" ], "shortest_path_cycles": [ - 0.25, - 0.234375, - 0.25, - 0.25, + 0.515625, + 0.203125, + 0.515625, + 0.4375, 0.0, 0.25, 0.0 ], "total_bound_pipelines": [ "arith_total", - "arith_sfu", - "varying", - "texture" + "arith_cvt" ], "total_cycles": [ - 0.5, - 0.265625, - 0.453125, - 0.5, + 0.71875, + 0.234375, + 0.71875, + 0.6875, 0.0, 0.5, 0.5 @@ -3984,14 +4014,14 @@ }, "stack_spill_bytes": 0, "thread_occupancy": 100, - "uniform_registers_used": 8, - "work_registers_used": 21 + "uniform_registers_used": 10, + "work_registers_used": 26 } } }, "Mali-T880": { "core": "Mali-T880", - "filename": "flutter/impeller/entity/gles/advanced_blend_exclusion.frag.gles", + "filename": "flutter/impeller/entity/gles/advanced_blend_colordodge.frag.gles", "has_uniform_computation": false, "type": "Fragment", "variants": { @@ -4002,7 +4032,7 @@ "arithmetic" ], "longest_path_cycles": [ - 6.599999904632568, + 10.229999542236328, 2.0, 2.0 ], @@ -4015,7 +4045,7 @@ "arithmetic" ], "shortest_path_cycles": [ - 3.9600000381469727, + 7.920000076293945, 1.0, 0.0 ], @@ -4023,7 +4053,7 @@ "arithmetic" ], "total_cycles": [ - 7.333333492279053, + 11.0, 2.0, 2.0 ] @@ -4035,10 +4065,10 @@ } } }, - "flutter/impeller/entity/gles/advanced_blend_hardlight.frag.gles": { + "flutter/impeller/entity/gles/advanced_blend_darken.frag.gles": { "Mali-G78": { "core": "Mali-G78", - "filename": "flutter/impeller/entity/gles/advanced_blend_hardlight.frag.gles", + "filename": "flutter/impeller/entity/gles/advanced_blend_darken.frag.gles", "has_side_effects": false, "has_uniform_computation": true, "modifies_coverage": false, @@ -4059,8 +4089,8 @@ ], "longest_path_cycles": [ 0.5, - 0.453125, - 0.46875, + 0.171875, + 0.4375, 0.5, 0.0, 0.5, @@ -4077,12 +4107,12 @@ ], "shortest_path_bound_pipelines": [ "arith_total", - "arith_fma" + "arith_cvt" ], "shortest_path_cycles": [ - 0.421875, - 0.421875, - 0.3125, + 0.28125, + 0.140625, + 0.28125, 0.25, 0.0, 0.25, @@ -4090,12 +4120,14 @@ ], "total_bound_pipelines": [ "arith_total", - "arith_cvt" + "arith_sfu", + "varying", + "texture" ], "total_cycles": [ - 0.515625, - 0.453125, - 0.515625, + 0.5, + 0.171875, + 0.484375, 0.5, 0.0, 0.5, @@ -4105,13 +4137,13 @@ "stack_spill_bytes": 0, "thread_occupancy": 100, "uniform_registers_used": 8, - "work_registers_used": 25 + "work_registers_used": 20 } } }, "Mali-T880": { "core": "Mali-T880", - "filename": "flutter/impeller/entity/gles/advanced_blend_hardlight.frag.gles", + "filename": "flutter/impeller/entity/gles/advanced_blend_darken.frag.gles", "has_uniform_computation": false, "type": "Fragment", "variants": { @@ -4122,7 +4154,7 @@ "arithmetic" ], "longest_path_cycles": [ - 7.590000152587891, + 5.940000057220459, 2.0, 2.0 ], @@ -4135,7 +4167,7 @@ "arithmetic" ], "shortest_path_cycles": [ - 4.949999809265137, + 3.299999952316284, 1.0, 0.0 ], @@ -4143,22 +4175,22 @@ "arithmetic" ], "total_cycles": [ - 8.333333015441895, + 6.666666507720947, 2.0, 2.0 ] }, "thread_occupancy": 100, "uniform_registers_used": 1, - "work_registers_used": 4 + "work_registers_used": 2 } } } }, - "flutter/impeller/entity/gles/advanced_blend_hue.frag.gles": { + "flutter/impeller/entity/gles/advanced_blend_difference.frag.gles": { "Mali-G78": { "core": "Mali-G78", - "filename": "flutter/impeller/entity/gles/advanced_blend_hue.frag.gles", + "filename": "flutter/impeller/entity/gles/advanced_blend_difference.frag.gles", "has_side_effects": false, "has_uniform_computation": true, "modifies_coverage": false, @@ -4168,18 +4200,20 @@ "uses_late_zs_update": false, "variants": { "Main": { - "fp16_arithmetic": 86, + "fp16_arithmetic": 100, "has_stack_spilling": false, "performance": { "longest_path_bound_pipelines": [ "arith_total", - "arith_fma" + "arith_sfu", + "varying", + "texture" ], "longest_path_cycles": [ - 0.762499988079071, - 0.762499988079071, - 0.6875, - 0.6875, + 0.5, + 0.203125, + 0.40625, + 0.5, 0.0, 0.5, 0.5 @@ -4195,12 +4229,14 @@ ], "shortest_path_bound_pipelines": [ "arith_total", - "arith_cvt" + "arith_cvt", + "arith_sfu", + "varying" ], "shortest_path_cycles": [ - 0.515625, - 0.328125, - 0.515625, + 0.25, + 0.171875, + 0.25, 0.25, 0.0, 0.25, @@ -4208,13 +4244,15 @@ ], "total_bound_pipelines": [ "arith_total", - "arith_cvt" + "arith_sfu", + "varying", + "texture" ], "total_cycles": [ - 0.78125, - 0.762499988079071, - 0.78125, - 0.6875, + 0.5, + 0.203125, + 0.453125, + 0.5, 0.0, 0.5, 0.5 @@ -4222,14 +4260,14 @@ }, "stack_spill_bytes": 0, "thread_occupancy": 100, - "uniform_registers_used": 12, - "work_registers_used": 21 + "uniform_registers_used": 8, + "work_registers_used": 20 } } }, "Mali-T880": { "core": "Mali-T880", - "filename": "flutter/impeller/entity/gles/advanced_blend_hue.frag.gles", + "filename": "flutter/impeller/entity/gles/advanced_blend_difference.frag.gles", "has_uniform_computation": false, "type": "Fragment", "variants": { @@ -4240,7 +4278,7 @@ "arithmetic" ], "longest_path_cycles": [ - 11.880000114440918, + 5.940000057220459, 2.0, 2.0 ], @@ -4253,7 +4291,7 @@ "arithmetic" ], "shortest_path_cycles": [ - 6.269999980926514, + 3.299999952316284, 1.0, 0.0 ], @@ -4261,22 +4299,22 @@ "arithmetic" ], "total_cycles": [ - 13.0, + 6.666666507720947, 2.0, 2.0 ] }, "thread_occupancy": 100, "uniform_registers_used": 1, - "work_registers_used": 3 + "work_registers_used": 2 } } } }, - "flutter/impeller/entity/gles/advanced_blend_lighten.frag.gles": { + "flutter/impeller/entity/gles/advanced_blend_exclusion.frag.gles": { "Mali-G78": { "core": "Mali-G78", - "filename": "flutter/impeller/entity/gles/advanced_blend_lighten.frag.gles", + "filename": "flutter/impeller/entity/gles/advanced_blend_exclusion.frag.gles", "has_side_effects": false, "has_uniform_computation": true, "modifies_coverage": false, @@ -4297,8 +4335,8 @@ ], "longest_path_cycles": [ 0.5, - 0.171875, - 0.4375, + 0.265625, + 0.40625, 0.5, 0.0, 0.5, @@ -4315,12 +4353,14 @@ ], "shortest_path_bound_pipelines": [ "arith_total", - "arith_cvt" + "arith_cvt", + "arith_sfu", + "varying" ], "shortest_path_cycles": [ - 0.28125, - 0.140625, - 0.28125, + 0.25, + 0.234375, + 0.25, 0.25, 0.0, 0.25, @@ -4334,8 +4374,8 @@ ], "total_cycles": [ 0.5, - 0.171875, - 0.484375, + 0.265625, + 0.453125, 0.5, 0.0, 0.5, @@ -4345,13 +4385,13 @@ "stack_spill_bytes": 0, "thread_occupancy": 100, "uniform_registers_used": 8, - "work_registers_used": 20 + "work_registers_used": 21 } } }, "Mali-T880": { "core": "Mali-T880", - "filename": "flutter/impeller/entity/gles/advanced_blend_lighten.frag.gles", + "filename": "flutter/impeller/entity/gles/advanced_blend_exclusion.frag.gles", "has_uniform_computation": false, "type": "Fragment", "variants": { @@ -4362,7 +4402,7 @@ "arithmetic" ], "longest_path_cycles": [ - 5.940000057220459, + 6.599999904632568, 2.0, 2.0 ], @@ -4375,7 +4415,7 @@ "arithmetic" ], "shortest_path_cycles": [ - 3.299999952316284, + 3.9600000381469727, 1.0, 0.0 ], @@ -4383,22 +4423,22 @@ "arithmetic" ], "total_cycles": [ - 6.666666507720947, + 7.333333492279053, 2.0, 2.0 ] }, "thread_occupancy": 100, "uniform_registers_used": 1, - "work_registers_used": 2 + "work_registers_used": 3 } } } }, - "flutter/impeller/entity/gles/advanced_blend_luminosity.frag.gles": { + "flutter/impeller/entity/gles/advanced_blend_hardlight.frag.gles": { "Mali-G78": { "core": "Mali-G78", - "filename": "flutter/impeller/entity/gles/advanced_blend_luminosity.frag.gles", + "filename": "flutter/impeller/entity/gles/advanced_blend_hardlight.frag.gles", "has_side_effects": false, "has_uniform_computation": true, "modifies_coverage": false, @@ -4408,18 +4448,20 @@ "uses_late_zs_update": false, "variants": { "Main": { - "fp16_arithmetic": 82, + "fp16_arithmetic": 100, "has_stack_spilling": false, "performance": { "longest_path_bound_pipelines": [ "arith_total", - "arith_fma" + "arith_sfu", + "varying", + "texture" ], "longest_path_cycles": [ - 0.65625, - 0.65625, - 0.53125, - 0.625, + 0.5, + 0.453125, + 0.46875, + 0.5, 0.0, 0.5, 0.5 @@ -4435,12 +4477,12 @@ ], "shortest_path_bound_pipelines": [ "arith_total", - "arith_cvt" + "arith_fma" ], "shortest_path_cycles": [ - 0.375, - 0.328125, - 0.375, + 0.421875, + 0.421875, + 0.3125, 0.25, 0.0, 0.25, @@ -4448,13 +4490,13 @@ ], "total_bound_pipelines": [ "arith_total", - "arith_fma" + "arith_cvt" ], "total_cycles": [ - 0.65625, - 0.65625, - 0.578125, - 0.625, + 0.515625, + 0.453125, + 0.515625, + 0.5, 0.0, 0.5, 0.5 @@ -4462,14 +4504,14 @@ }, "stack_spill_bytes": 0, "thread_occupancy": 100, - "uniform_registers_used": 12, - "work_registers_used": 20 + "uniform_registers_used": 8, + "work_registers_used": 25 } } }, "Mali-T880": { "core": "Mali-T880", - "filename": "flutter/impeller/entity/gles/advanced_blend_luminosity.frag.gles", + "filename": "flutter/impeller/entity/gles/advanced_blend_hardlight.frag.gles", "has_uniform_computation": false, "type": "Fragment", "variants": { @@ -4480,7 +4522,7 @@ "arithmetic" ], "longest_path_cycles": [ - 9.899999618530273, + 7.590000152587891, 2.0, 2.0 ], @@ -4493,7 +4535,7 @@ "arithmetic" ], "shortest_path_cycles": [ - 5.940000057220459, + 4.949999809265137, 1.0, 0.0 ], @@ -4501,22 +4543,22 @@ "arithmetic" ], "total_cycles": [ - 11.0, + 8.333333015441895, 2.0, 2.0 ] }, "thread_occupancy": 100, "uniform_registers_used": 1, - "work_registers_used": 3 + "work_registers_used": 4 } } } }, - "flutter/impeller/entity/gles/advanced_blend_multiply.frag.gles": { + "flutter/impeller/entity/gles/advanced_blend_hue.frag.gles": { "Mali-G78": { "core": "Mali-G78", - "filename": "flutter/impeller/entity/gles/advanced_blend_multiply.frag.gles", + "filename": "flutter/impeller/entity/gles/advanced_blend_hue.frag.gles", "has_side_effects": false, "has_uniform_computation": true, "modifies_coverage": false, @@ -4526,20 +4568,18 @@ "uses_late_zs_update": false, "variants": { "Main": { - "fp16_arithmetic": 100, + "fp16_arithmetic": 86, "has_stack_spilling": false, "performance": { "longest_path_bound_pipelines": [ "arith_total", - "arith_sfu", - "varying", - "texture" + "arith_fma" ], "longest_path_cycles": [ - 0.5, - 0.203125, - 0.40625, - 0.5, + 0.762499988079071, + 0.762499988079071, + 0.6875, + 0.6875, 0.0, 0.5, 0.5 @@ -4555,14 +4595,12 @@ ], "shortest_path_bound_pipelines": [ "arith_total", - "arith_cvt", - "arith_sfu", - "varying" + "arith_cvt" ], "shortest_path_cycles": [ - 0.25, - 0.171875, - 0.25, + 0.515625, + 0.328125, + 0.515625, 0.25, 0.0, 0.25, @@ -4570,15 +4608,13 @@ ], "total_bound_pipelines": [ "arith_total", - "arith_sfu", - "varying", - "texture" + "arith_cvt" ], "total_cycles": [ - 0.5, - 0.203125, - 0.453125, - 0.5, + 0.78125, + 0.762499988079071, + 0.78125, + 0.6875, 0.0, 0.5, 0.5 @@ -4586,14 +4622,14 @@ }, "stack_spill_bytes": 0, "thread_occupancy": 100, - "uniform_registers_used": 8, - "work_registers_used": 20 + "uniform_registers_used": 12, + "work_registers_used": 21 } } }, "Mali-T880": { "core": "Mali-T880", - "filename": "flutter/impeller/entity/gles/advanced_blend_multiply.frag.gles", + "filename": "flutter/impeller/entity/gles/advanced_blend_hue.frag.gles", "has_uniform_computation": false, "type": "Fragment", "variants": { @@ -4604,7 +4640,7 @@ "arithmetic" ], "longest_path_cycles": [ - 6.269999980926514, + 11.880000114440918, 2.0, 2.0 ], @@ -4617,7 +4653,7 @@ "arithmetic" ], "shortest_path_cycles": [ - 3.630000114440918, + 6.269999980926514, 1.0, 0.0 ], @@ -4625,22 +4661,22 @@ "arithmetic" ], "total_cycles": [ - 7.0, + 13.0, 2.0, 2.0 ] }, "thread_occupancy": 100, "uniform_registers_used": 1, - "work_registers_used": 2 + "work_registers_used": 3 } } } }, - "flutter/impeller/entity/gles/advanced_blend_overlay.frag.gles": { + "flutter/impeller/entity/gles/advanced_blend_lighten.frag.gles": { "Mali-G78": { "core": "Mali-G78", - "filename": "flutter/impeller/entity/gles/advanced_blend_overlay.frag.gles", + "filename": "flutter/impeller/entity/gles/advanced_blend_lighten.frag.gles", "has_side_effects": false, "has_uniform_computation": true, "modifies_coverage": false, @@ -4661,8 +4697,8 @@ ], "longest_path_cycles": [ 0.5, - 0.453125, - 0.46875, + 0.171875, + 0.4375, 0.5, 0.0, 0.5, @@ -4679,12 +4715,12 @@ ], "shortest_path_bound_pipelines": [ "arith_total", - "arith_fma" + "arith_cvt" ], "shortest_path_cycles": [ - 0.421875, - 0.421875, - 0.3125, + 0.28125, + 0.140625, + 0.28125, 0.25, 0.0, 0.25, @@ -4692,12 +4728,14 @@ ], "total_bound_pipelines": [ "arith_total", - "arith_cvt" + "arith_sfu", + "varying", + "texture" ], "total_cycles": [ - 0.515625, - 0.453125, - 0.515625, + 0.5, + 0.171875, + 0.484375, 0.5, 0.0, 0.5, @@ -4707,13 +4745,13 @@ "stack_spill_bytes": 0, "thread_occupancy": 100, "uniform_registers_used": 8, - "work_registers_used": 25 + "work_registers_used": 20 } } }, "Mali-T880": { "core": "Mali-T880", - "filename": "flutter/impeller/entity/gles/advanced_blend_overlay.frag.gles", + "filename": "flutter/impeller/entity/gles/advanced_blend_lighten.frag.gles", "has_uniform_computation": false, "type": "Fragment", "variants": { @@ -4724,7 +4762,7 @@ "arithmetic" ], "longest_path_cycles": [ - 7.260000228881836, + 5.940000057220459, 2.0, 2.0 ], @@ -4737,7 +4775,7 @@ "arithmetic" ], "shortest_path_cycles": [ - 4.949999809265137, + 3.299999952316284, 1.0, 0.0 ], @@ -4745,22 +4783,22 @@ "arithmetic" ], "total_cycles": [ - 8.0, + 6.666666507720947, 2.0, 2.0 ] }, "thread_occupancy": 100, "uniform_registers_used": 1, - "work_registers_used": 4 + "work_registers_used": 2 } } } }, - "flutter/impeller/entity/gles/advanced_blend_saturation.frag.gles": { + "flutter/impeller/entity/gles/advanced_blend_luminosity.frag.gles": { "Mali-G78": { "core": "Mali-G78", - "filename": "flutter/impeller/entity/gles/advanced_blend_saturation.frag.gles", + "filename": "flutter/impeller/entity/gles/advanced_blend_luminosity.frag.gles", "has_side_effects": false, "has_uniform_computation": true, "modifies_coverage": false, @@ -4770,7 +4808,7 @@ "uses_late_zs_update": false, "variants": { "Main": { - "fp16_arithmetic": 86, + "fp16_arithmetic": 82, "has_stack_spilling": false, "performance": { "longest_path_bound_pipelines": [ @@ -4778,10 +4816,10 @@ "arith_fma" ], "longest_path_cycles": [ - 0.762499988079071, - 0.762499988079071, - 0.6875, - 0.6875, + 0.65625, + 0.65625, + 0.53125, + 0.625, 0.0, 0.5, 0.5 @@ -4800,9 +4838,9 @@ "arith_cvt" ], "shortest_path_cycles": [ - 0.515625, + 0.375, 0.328125, - 0.515625, + 0.375, 0.25, 0.0, 0.25, @@ -4810,13 +4848,13 @@ ], "total_bound_pipelines": [ "arith_total", - "arith_cvt" + "arith_fma" ], "total_cycles": [ - 0.78125, - 0.762499988079071, - 0.78125, - 0.6875, + 0.65625, + 0.65625, + 0.578125, + 0.625, 0.0, 0.5, 0.5 @@ -4825,13 +4863,13 @@ "stack_spill_bytes": 0, "thread_occupancy": 100, "uniform_registers_used": 12, - "work_registers_used": 21 + "work_registers_used": 20 } } }, "Mali-T880": { "core": "Mali-T880", - "filename": "flutter/impeller/entity/gles/advanced_blend_saturation.frag.gles", + "filename": "flutter/impeller/entity/gles/advanced_blend_luminosity.frag.gles", "has_uniform_computation": false, "type": "Fragment", "variants": { @@ -4842,7 +4880,7 @@ "arithmetic" ], "longest_path_cycles": [ - 12.210000038146973, + 9.899999618530273, 2.0, 2.0 ], @@ -4855,7 +4893,7 @@ "arithmetic" ], "shortest_path_cycles": [ - 6.599999904632568, + 5.940000057220459, 1.0, 0.0 ], @@ -4863,7 +4901,7 @@ "arithmetic" ], "total_cycles": [ - 13.333333015441895, + 11.0, 2.0, 2.0 ] @@ -4875,10 +4913,10 @@ } } }, - "flutter/impeller/entity/gles/advanced_blend_screen.frag.gles": { + "flutter/impeller/entity/gles/advanced_blend_multiply.frag.gles": { "Mali-G78": { "core": "Mali-G78", - "filename": "flutter/impeller/entity/gles/advanced_blend_screen.frag.gles", + "filename": "flutter/impeller/entity/gles/advanced_blend_multiply.frag.gles", "has_side_effects": false, "has_uniform_computation": true, "modifies_coverage": false, @@ -4899,7 +4937,7 @@ ], "longest_path_cycles": [ 0.5, - 0.234375, + 0.203125, 0.40625, 0.5, 0.0, @@ -4923,7 +4961,7 @@ ], "shortest_path_cycles": [ 0.25, - 0.203125, + 0.171875, 0.25, 0.25, 0.0, @@ -4938,7 +4976,7 @@ ], "total_cycles": [ 0.5, - 0.234375, + 0.203125, 0.453125, 0.5, 0.0, @@ -4949,13 +4987,13 @@ "stack_spill_bytes": 0, "thread_occupancy": 100, "uniform_registers_used": 8, - "work_registers_used": 21 + "work_registers_used": 20 } } }, "Mali-T880": { "core": "Mali-T880", - "filename": "flutter/impeller/entity/gles/advanced_blend_screen.frag.gles", + "filename": "flutter/impeller/entity/gles/advanced_blend_multiply.frag.gles", "has_uniform_computation": false, "type": "Fragment", "variants": { @@ -4999,10 +5037,10 @@ } } }, - "flutter/impeller/entity/gles/advanced_blend_softlight.frag.gles": { + "flutter/impeller/entity/gles/advanced_blend_overlay.frag.gles": { "Mali-G78": { "core": "Mali-G78", - "filename": "flutter/impeller/entity/gles/advanced_blend_softlight.frag.gles", + "filename": "flutter/impeller/entity/gles/advanced_blend_overlay.frag.gles", "has_side_effects": false, "has_uniform_computation": true, "modifies_coverage": false, @@ -5017,13 +5055,15 @@ "performance": { "longest_path_bound_pipelines": [ "arith_total", - "arith_fma" + "arith_sfu", + "varying", + "texture" ], "longest_path_cycles": [ - 0.71875, - 0.71875, - 0.609375, - 0.6875, + 0.5, + 0.453125, + 0.46875, + 0.5, 0.0, 0.5, 0.5 @@ -5042,23 +5082,23 @@ "arith_fma" ], "shortest_path_cycles": [ - 0.6875, - 0.6875, - 0.453125, - 0.4375, + 0.421875, + 0.421875, + 0.3125, + 0.25, 0.0, 0.25, 0.0 ], "total_bound_pipelines": [ "arith_total", - "arith_fma" + "arith_cvt" ], "total_cycles": [ - 0.71875, - 0.71875, - 0.65625, - 0.6875, + 0.515625, + 0.453125, + 0.515625, + 0.5, 0.0, 0.5, 0.5 @@ -5066,14 +5106,14 @@ }, "stack_spill_bytes": 0, "thread_occupancy": 100, - "uniform_registers_used": 12, - "work_registers_used": 32 + "uniform_registers_used": 8, + "work_registers_used": 25 } } }, "Mali-T880": { "core": "Mali-T880", - "filename": "flutter/impeller/entity/gles/advanced_blend_softlight.frag.gles", + "filename": "flutter/impeller/entity/gles/advanced_blend_overlay.frag.gles", "has_uniform_computation": false, "type": "Fragment", "variants": { @@ -5084,7 +5124,7 @@ "arithmetic" ], "longest_path_cycles": [ - 10.5600004196167, + 7.260000228881836, 2.0, 2.0 ], @@ -5097,7 +5137,7 @@ "arithmetic" ], "shortest_path_cycles": [ - 8.25, + 4.949999809265137, 1.0, 0.0 ], @@ -5105,7 +5145,7 @@ "arithmetic" ], "total_cycles": [ - 11.333333015441895, + 8.0, 2.0, 2.0 ] @@ -5117,10 +5157,10 @@ } } }, - "flutter/impeller/entity/gles/blend.frag.gles": { + "flutter/impeller/entity/gles/advanced_blend_saturation.frag.gles": { "Mali-G78": { "core": "Mali-G78", - "filename": "flutter/impeller/entity/gles/blend.frag.gles", + "filename": "flutter/impeller/entity/gles/advanced_blend_saturation.frag.gles", "has_side_effects": false, "has_uniform_computation": true, "modifies_coverage": false, @@ -5130,20 +5170,21 @@ "uses_late_zs_update": false, "variants": { "Main": { - "fp16_arithmetic": 100, + "fp16_arithmetic": 86, "has_stack_spilling": false, "performance": { "longest_path_bound_pipelines": [ - "texture" + "arith_total", + "arith_fma" ], "longest_path_cycles": [ - 0.09375, - 0.046875, - 0.09375, - 0.0, + 0.762499988079071, + 0.762499988079071, + 0.6875, + 0.6875, 0.0, - 0.125, - 0.25 + 0.5, + 0.5 ], "pipelines": [ "arith_total", @@ -5155,40 +5196,42 @@ "texture" ], "shortest_path_bound_pipelines": [ - "texture" + "arith_total", + "arith_cvt" ], "shortest_path_cycles": [ - 0.0625, - 0.046875, - 0.0625, - 0.0, + 0.515625, + 0.328125, + 0.515625, + 0.25, 0.0, - 0.125, - 0.25 + 0.25, + 0.0 ], "total_bound_pipelines": [ - "texture" + "arith_total", + "arith_cvt" ], "total_cycles": [ - 0.09375, - 0.046875, - 0.09375, - 0.0, + 0.78125, + 0.762499988079071, + 0.78125, + 0.6875, 0.0, - 0.125, - 0.25 + 0.5, + 0.5 ] }, "stack_spill_bytes": 0, "thread_occupancy": 100, - "uniform_registers_used": 4, - "work_registers_used": 19 + "uniform_registers_used": 12, + "work_registers_used": 21 } } }, "Mali-T880": { "core": "Mali-T880", - "filename": "flutter/impeller/entity/gles/blend.frag.gles", + "filename": "flutter/impeller/entity/gles/advanced_blend_saturation.frag.gles", "has_uniform_computation": false, "type": "Fragment", "variants": { @@ -5196,14 +5239,12 @@ "has_stack_spilling": false, "performance": { "longest_path_bound_pipelines": [ - "arithmetic", - "load_store", - "texture" + "arithmetic" ], "longest_path_cycles": [ - 1.0, - 1.0, - 1.0 + 12.210000038146973, + 2.0, + 2.0 ], "pipelines": [ "arithmetic", @@ -5211,36 +5252,951 @@ "texture" ], "shortest_path_bound_pipelines": [ - "arithmetic", - "load_store", - "texture" + "arithmetic" ], "shortest_path_cycles": [ + 6.599999904632568, 1.0, - 1.0, - 1.0 + 0.0 ], "total_bound_pipelines": [ "arithmetic" ], "total_cycles": [ - 1.3333333730697632, - 1.0, - 1.0 + 13.333333015441895, + 2.0, + 2.0 ] }, "thread_occupancy": 100, "uniform_registers_used": 1, - "work_registers_used": 2 + "work_registers_used": 3 } } } }, - "flutter/impeller/entity/gles/blend.vert.gles": { + "flutter/impeller/entity/gles/advanced_blend_screen.frag.gles": { "Mali-G78": { "core": "Mali-G78", - "filename": "flutter/impeller/entity/gles/blend.vert.gles", - "has_uniform_computation": false, + "filename": "flutter/impeller/entity/gles/advanced_blend_screen.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": 100, + "has_stack_spilling": false, + "performance": { + "longest_path_bound_pipelines": [ + "arith_total", + "arith_sfu", + "varying", + "texture" + ], + "longest_path_cycles": [ + 0.5, + 0.234375, + 0.40625, + 0.5, + 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_cvt", + "arith_sfu", + "varying" + ], + "shortest_path_cycles": [ + 0.25, + 0.203125, + 0.25, + 0.25, + 0.0, + 0.25, + 0.0 + ], + "total_bound_pipelines": [ + "arith_total", + "arith_sfu", + "varying", + "texture" + ], + "total_cycles": [ + 0.5, + 0.234375, + 0.453125, + 0.5, + 0.0, + 0.5, + 0.5 + ] + }, + "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/advanced_blend_screen.frag.gles", + "has_uniform_computation": false, + "type": "Fragment", + "variants": { + "Main": { + "has_stack_spilling": false, + "performance": { + "longest_path_bound_pipelines": [ + "arithmetic" + ], + "longest_path_cycles": [ + 6.269999980926514, + 2.0, + 2.0 + ], + "pipelines": [ + "arithmetic", + "load_store", + "texture" + ], + "shortest_path_bound_pipelines": [ + "arithmetic" + ], + "shortest_path_cycles": [ + 3.630000114440918, + 1.0, + 0.0 + ], + "total_bound_pipelines": [ + "arithmetic" + ], + "total_cycles": [ + 7.0, + 2.0, + 2.0 + ] + }, + "thread_occupancy": 100, + "uniform_registers_used": 1, + "work_registers_used": 2 + } + } + } + }, + "flutter/impeller/entity/gles/advanced_blend_softlight.frag.gles": { + "Mali-G78": { + "core": "Mali-G78", + "filename": "flutter/impeller/entity/gles/advanced_blend_softlight.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": 100, + "has_stack_spilling": false, + "performance": { + "longest_path_bound_pipelines": [ + "arith_total", + "arith_fma" + ], + "longest_path_cycles": [ + 0.71875, + 0.71875, + 0.609375, + 0.6875, + 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.6875, + 0.6875, + 0.453125, + 0.4375, + 0.0, + 0.25, + 0.0 + ], + "total_bound_pipelines": [ + "arith_total", + "arith_fma" + ], + "total_cycles": [ + 0.71875, + 0.71875, + 0.65625, + 0.6875, + 0.0, + 0.5, + 0.5 + ] + }, + "stack_spill_bytes": 0, + "thread_occupancy": 100, + "uniform_registers_used": 12, + "work_registers_used": 32 + } + } + }, + "Mali-T880": { + "core": "Mali-T880", + "filename": "flutter/impeller/entity/gles/advanced_blend_softlight.frag.gles", + "has_uniform_computation": false, + "type": "Fragment", + "variants": { + "Main": { + "has_stack_spilling": false, + "performance": { + "longest_path_bound_pipelines": [ + "arithmetic" + ], + "longest_path_cycles": [ + 10.5600004196167, + 2.0, + 2.0 + ], + "pipelines": [ + "arithmetic", + "load_store", + "texture" + ], + "shortest_path_bound_pipelines": [ + "arithmetic" + ], + "shortest_path_cycles": [ + 8.25, + 1.0, + 0.0 + ], + "total_bound_pipelines": [ + "arithmetic" + ], + "total_cycles": [ + 11.333333015441895, + 2.0, + 2.0 + ] + }, + "thread_occupancy": 100, + "uniform_registers_used": 1, + "work_registers_used": 4 + } + } + } + }, + "flutter/impeller/entity/gles/blend.frag.gles": { + "Mali-G78": { + "core": "Mali-G78", + "filename": "flutter/impeller/entity/gles/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": 100, + "has_stack_spilling": false, + "performance": { + "longest_path_bound_pipelines": [ + "texture" + ], + "longest_path_cycles": [ + 0.09375, + 0.046875, + 0.09375, + 0.0, + 0.0, + 0.125, + 0.25 + ], + "pipelines": [ + "arith_total", + "arith_fma", + "arith_cvt", + "arith_sfu", + "load_store", + "varying", + "texture" + ], + "shortest_path_bound_pipelines": [ + "texture" + ], + "shortest_path_cycles": [ + 0.0625, + 0.046875, + 0.0625, + 0.0, + 0.0, + 0.125, + 0.25 + ], + "total_bound_pipelines": [ + "texture" + ], + "total_cycles": [ + 0.09375, + 0.046875, + 0.09375, + 0.0, + 0.0, + 0.125, + 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/blend.frag.gles", + "has_uniform_computation": false, + "type": "Fragment", + "variants": { + "Main": { + "has_stack_spilling": false, + "performance": { + "longest_path_bound_pipelines": [ + "arithmetic", + "load_store", + "texture" + ], + "longest_path_cycles": [ + 1.0, + 1.0, + 1.0 + ], + "pipelines": [ + "arithmetic", + "load_store", + "texture" + ], + "shortest_path_bound_pipelines": [ + "arithmetic", + "load_store", + "texture" + ], + "shortest_path_cycles": [ + 1.0, + 1.0, + 1.0 + ], + "total_bound_pipelines": [ + "arithmetic" + ], + "total_cycles": [ + 1.3333333730697632, + 1.0, + 1.0 + ] + }, + "thread_occupancy": 100, + "uniform_registers_used": 1, + "work_registers_used": 2 + } + } + } + }, + "flutter/impeller/entity/gles/blend.vert.gles": { + "Mali-G78": { + "core": "Mali-G78", + "filename": "flutter/impeller/entity/gles/blend.vert.gles", + "has_uniform_computation": false, + "type": "Vertex", + "variants": { + "Position": { + "fp16_arithmetic": 80, + "has_stack_spilling": false, + "performance": { + "longest_path_bound_pipelines": [ + "load_store" + ], + "longest_path_cycles": [ + 0.078125, + 0.078125, + 0.046875, + 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.078125, + 0.078125, + 0.046875, + 0.0, + 2.0, + 0.0 + ], + "total_bound_pipelines": [ + "load_store" + ], + "total_cycles": [ + 0.078125, + 0.078125, + 0.046875, + 0.0, + 2.0, + 0.0 + ] + }, + "stack_spill_bytes": 0, + "thread_occupancy": 100, + "uniform_registers_used": 14, + "work_registers_used": 32 + }, + "Varying": { + "fp16_arithmetic": null, + "has_stack_spilling": false, + "performance": { + "longest_path_bound_pipelines": [ + "load_store" + ], + "longest_path_cycles": [ + 0.0, + 0.0, + 0.0, + 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.0, + 0.0, + 0.0, + 0.0, + 3.0, + 0.0 + ], + "total_bound_pipelines": [ + "load_store" + ], + "total_cycles": [ + 0.0, + 0.0, + 0.0, + 0.0, + 3.0, + 0.0 + ] + }, + "stack_spill_bytes": 0, + "thread_occupancy": 100, + "uniform_registers_used": 8, + "work_registers_used": 6 + } + } + }, + "Mali-T880": { + "core": "Mali-T880", + "filename": "flutter/impeller/entity/gles/blend.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.640000104904175, + 5.0, + 0.0 + ], + "pipelines": [ + "arithmetic", + "load_store", + "texture" + ], + "shortest_path_bound_pipelines": [ + "load_store" + ], + "shortest_path_cycles": [ + 2.640000104904175, + 5.0, + 0.0 + ], + "total_bound_pipelines": [ + "load_store" + ], + "total_cycles": [ + 2.6666667461395264, + 5.0, + 0.0 + ] + }, + "thread_occupancy": 100, + "uniform_registers_used": 4, + "work_registers_used": 2 + } + } + } + }, + "flutter/impeller/entity/gles/border_mask_blur.frag.gles": { + "Mali-G78": { + "core": "Mali-G78", + "filename": "flutter/impeller/entity/gles/border_mask_blur.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": 10, + "has_stack_spilling": false, + "performance": { + "longest_path_bound_pipelines": [ + "arith_total", + "arith_fma" + ], + "longest_path_cycles": [ + 0.8125, + 0.8125, + 0.234375, + 0.25, + 0.0, + 0.25, + 0.25 + ], + "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.8125, + 0.8125, + 0.203125, + 0.25, + 0.0, + 0.25, + 0.25 + ], + "total_bound_pipelines": [ + "arith_total", + "arith_fma" + ], + "total_cycles": [ + 0.8125, + 0.8125, + 0.234375, + 0.25, + 0.0, + 0.25, + 0.25 + ] + }, + "stack_spill_bytes": 0, + "thread_occupancy": 100, + "uniform_registers_used": 10, + "work_registers_used": 32 + } + } + }, + "Mali-T880": { + "core": "Mali-T880", + "filename": "flutter/impeller/entity/gles/border_mask_blur.frag.gles", + "has_uniform_computation": false, + "type": "Fragment", + "variants": { + "Main": { + "has_stack_spilling": false, + "performance": { + "longest_path_bound_pipelines": [ + "arithmetic" + ], + "longest_path_cycles": [ + 8.90999984741211, + 1.0, + 1.0 + ], + "pipelines": [ + "arithmetic", + "load_store", + "texture" + ], + "shortest_path_bound_pipelines": [ + "arithmetic" + ], + "shortest_path_cycles": [ + 8.90999984741211, + 1.0, + 1.0 + ], + "total_bound_pipelines": [ + "arithmetic" + ], + "total_cycles": [ + 9.333333015441895, + 1.0, + 1.0 + ] + }, + "thread_occupancy": 100, + "uniform_registers_used": 1, + "work_registers_used": 3 + } + } + } + }, + "flutter/impeller/entity/gles/border_mask_blur.vert.gles": { + "Mali-G78": { + "core": "Mali-G78", + "filename": "flutter/impeller/entity/gles/border_mask_blur.vert.gles", + "has_uniform_computation": true, + "type": "Vertex", + "variants": { + "Position": { + "fp16_arithmetic": 80, + "has_stack_spilling": false, + "performance": { + "longest_path_bound_pipelines": [ + "load_store" + ], + "longest_path_cycles": [ + 0.078125, + 0.078125, + 0.046875, + 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.078125, + 0.078125, + 0.046875, + 0.0, + 2.0, + 0.0 + ], + "total_bound_pipelines": [ + "load_store" + ], + "total_cycles": [ + 0.078125, + 0.078125, + 0.046875, + 0.0, + 2.0, + 0.0 + ] + }, + "stack_spill_bytes": 0, + "thread_occupancy": 100, + "uniform_registers_used": 16, + "work_registers_used": 32 + }, + "Varying": { + "fp16_arithmetic": 100, + "has_stack_spilling": false, + "performance": { + "longest_path_bound_pipelines": [ + "load_store" + ], + "longest_path_cycles": [ + 0.03125, + 0.015625, + 0.03125, + 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.03125, + 0.015625, + 0.03125, + 0.0, + 3.0, + 0.0 + ], + "total_bound_pipelines": [ + "load_store" + ], + "total_cycles": [ + 0.03125, + 0.015625, + 0.03125, + 0.0, + 3.0, + 0.0 + ] + }, + "stack_spill_bytes": 0, + "thread_occupancy": 100, + "uniform_registers_used": 10, + "work_registers_used": 7 + } + } + }, + "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": 4, + "work_registers_used": 2 + } + } + } + }, + "flutter/impeller/entity/gles/color_matrix_color_filter.frag.gles": { + "Mali-G78": { + "core": "Mali-G78", + "filename": "flutter/impeller/entity/gles/color_matrix_color_filter.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, + "variants": { + "Main": { + "fp16_arithmetic": 100, + "has_stack_spilling": false, + "performance": { + "longest_path_bound_pipelines": [ + "arith_total", + "arith_fma", + "varying", + "texture" + ], + "longest_path_cycles": [ + 0.25, + 0.25, + 0.09375, + 0.0625, + 0.0, + 0.25, + 0.25 + ], + "pipelines": [ + "arith_total", + "arith_fma", + "arith_cvt", + "arith_sfu", + "load_store", + "varying", + "texture" + ], + "shortest_path_bound_pipelines": [ + "arith_total", + "arith_fma", + "varying", + "texture" + ], + "shortest_path_cycles": [ + 0.25, + 0.25, + 0.0625, + 0.0625, + 0.0, + 0.25, + 0.25 + ], + "total_bound_pipelines": [ + "arith_total", + "arith_fma", + "varying", + "texture" + ], + "total_cycles": [ + 0.25, + 0.25, + 0.09375, + 0.0625, + 0.0, + 0.25, + 0.25 + ] + }, + "stack_spill_bytes": 0, + "thread_occupancy": 100, + "uniform_registers_used": 14, + "work_registers_used": 21 + } + } + }, + "Mali-T880": { + "core": "Mali-T880", + "filename": "flutter/impeller/entity/gles/color_matrix_color_filter.frag.gles", + "has_uniform_computation": false, + "type": "Fragment", + "variants": { + "Main": { + "has_stack_spilling": false, + "performance": { + "longest_path_bound_pipelines": [ + "arithmetic" + ], + "longest_path_cycles": [ + 2.640000104904175, + 1.0, + 1.0 + ], + "pipelines": [ + "arithmetic", + "load_store", + "texture" + ], + "shortest_path_bound_pipelines": [ + "arithmetic" + ], + "shortest_path_cycles": [ + 2.640000104904175, + 1.0, + 1.0 + ], + "total_bound_pipelines": [ + "arithmetic" + ], + "total_cycles": [ + 3.0, + 1.0, + 1.0 + ] + }, + "thread_occupancy": 100, + "uniform_registers_used": 3, + "work_registers_used": 2 + } + } + } + }, + "flutter/impeller/entity/gles/color_matrix_color_filter.vert.gles": { + "Mali-G78": { + "core": "Mali-G78", + "filename": "flutter/impeller/entity/gles/color_matrix_color_filter.vert.gles", + "has_uniform_computation": true, "type": "Vertex", "variants": { "Position": { @@ -5291,20 +6247,20 @@ }, "stack_spill_bytes": 0, "thread_occupancy": 100, - "uniform_registers_used": 14, + "uniform_registers_used": 16, "work_registers_used": 32 }, "Varying": { - "fp16_arithmetic": null, + "fp16_arithmetic": 100, "has_stack_spilling": false, "performance": { "longest_path_bound_pipelines": [ "load_store" ], "longest_path_cycles": [ - 0.0, - 0.0, - 0.0, + 0.03125, + 0.015625, + 0.03125, 0.0, 3.0, 0.0 @@ -5321,9 +6277,9 @@ "load_store" ], "shortest_path_cycles": [ - 0.0, - 0.0, - 0.0, + 0.03125, + 0.015625, + 0.03125, 0.0, 3.0, 0.0 @@ -5332,9 +6288,9 @@ "load_store" ], "total_cycles": [ - 0.0, - 0.0, - 0.0, + 0.03125, + 0.015625, + 0.03125, 0.0, 3.0, 0.0 @@ -5342,14 +6298,14 @@ }, "stack_spill_bytes": 0, "thread_occupancy": 100, - "uniform_registers_used": 8, - "work_registers_used": 6 + "uniform_registers_used": 10, + "work_registers_used": 7 } } }, "Mali-T880": { "core": "Mali-T880", - "filename": "flutter/impeller/entity/gles/blend.vert.gles", + "filename": "flutter/impeller/entity/gles/color_matrix_color_filter.vert.gles", "has_uniform_computation": false, "type": "Vertex", "variants": { @@ -5360,8 +6316,8 @@ "load_store" ], "longest_path_cycles": [ - 2.640000104904175, - 5.0, + 2.9700000286102295, + 4.0, 0.0 ], "pipelines": [ @@ -5373,16 +6329,16 @@ "load_store" ], "shortest_path_cycles": [ - 2.640000104904175, - 5.0, + 2.9700000286102295, + 4.0, 0.0 ], "total_bound_pipelines": [ "load_store" ], "total_cycles": [ - 2.6666667461395264, - 5.0, + 3.0, + 4.0, 0.0 ] }, @@ -5393,10 +6349,10 @@ } } }, - "flutter/impeller/entity/gles/border_mask_blur.frag.gles": { + "flutter/impeller/entity/gles/conical_gradient_fill.frag.gles": { "Mali-G78": { "core": "Mali-G78", - "filename": "flutter/impeller/entity/gles/border_mask_blur.frag.gles", + "filename": "flutter/impeller/entity/gles/conical_gradient_fill.frag.gles", "has_side_effects": false, "has_uniform_computation": true, "modifies_coverage": false, @@ -5406,21 +6362,20 @@ "uses_late_zs_update": false, "variants": { "Main": { - "fp16_arithmetic": 10, + "fp16_arithmetic": 61, "has_stack_spilling": false, "performance": { "longest_path_bound_pipelines": [ - "arith_total", - "arith_fma" + null ], "longest_path_cycles": [ - 0.8125, - 0.8125, - 0.234375, - 0.25, - 0.0, - 0.25, - 0.25 + null, + null, + null, + null, + null, + null, + null ], "pipelines": [ "arith_total", @@ -5433,54 +6388,54 @@ ], "shortest_path_bound_pipelines": [ "arith_total", - "arith_fma" + "arith_cvt" ], "shortest_path_cycles": [ - 0.8125, - 0.8125, - 0.203125, 0.25, - 0.0, + 0.234375, 0.25, - 0.25 + 0.1875, + 0.0, + 0.125, + 0.0 ], "total_bound_pipelines": [ "arith_total", - "arith_fma" + "arith_cvt" ], "total_cycles": [ - 0.8125, - 0.8125, - 0.234375, - 0.25, + 0.59375, + 0.375, + 0.59375, + 0.1875, 0.0, - 0.25, + 0.125, 0.25 ] }, "stack_spill_bytes": 0, "thread_occupancy": 100, - "uniform_registers_used": 10, - "work_registers_used": 32 + "uniform_registers_used": 14, + "work_registers_used": 20 } } }, "Mali-T880": { "core": "Mali-T880", - "filename": "flutter/impeller/entity/gles/border_mask_blur.frag.gles", - "has_uniform_computation": false, + "filename": "flutter/impeller/entity/gles/conical_gradient_fill.frag.gles", + "has_uniform_computation": true, "type": "Fragment", "variants": { "Main": { "has_stack_spilling": false, "performance": { "longest_path_bound_pipelines": [ - "arithmetic" + null ], "longest_path_cycles": [ - 8.90999984741211, - 1.0, - 1.0 + null, + null, + null ], "pipelines": [ "arithmetic", @@ -5491,9 +6446,9 @@ "arithmetic" ], "shortest_path_cycles": [ - 8.90999984741211, + 1.9800000190734863, 1.0, - 1.0 + 0.0 ], "total_bound_pipelines": [ "arithmetic" @@ -5505,16 +6460,16 @@ ] }, "thread_occupancy": 100, - "uniform_registers_used": 1, - "work_registers_used": 3 + "uniform_registers_used": 3, + "work_registers_used": 2 } } } }, - "flutter/impeller/entity/gles/border_mask_blur.vert.gles": { + "flutter/impeller/entity/gles/gaussian_blur.vert.gles": { "Mali-G78": { "core": "Mali-G78", - "filename": "flutter/impeller/entity/gles/border_mask_blur.vert.gles", + "filename": "flutter/impeller/entity/gles/gaussian_blur.vert.gles", "has_uniform_computation": true, "type": "Vertex", "variants": { @@ -5577,11 +6532,11 @@ "load_store" ], "longest_path_cycles": [ + 0.0625, 0.03125, - 0.015625, - 0.03125, + 0.0625, 0.0, - 3.0, + 4.0, 0.0 ], "pipelines": [ @@ -5596,35 +6551,35 @@ "load_store" ], "shortest_path_cycles": [ + 0.0625, 0.03125, - 0.015625, - 0.03125, + 0.0625, 0.0, - 3.0, + 4.0, 0.0 ], "total_bound_pipelines": [ "load_store" ], "total_cycles": [ + 0.0625, 0.03125, - 0.015625, - 0.03125, + 0.0625, 0.0, - 3.0, + 4.0, 0.0 ] }, "stack_spill_bytes": 0, "thread_occupancy": 100, "uniform_registers_used": 10, - "work_registers_used": 7 + "work_registers_used": 8 } } }, "Mali-T880": { "core": "Mali-T880", - "filename": "flutter/impeller/entity/gles/border_mask_blur.vert.gles", + "filename": "flutter/impeller/entity/gles/gaussian_blur.vert.gles", "has_uniform_computation": false, "type": "Vertex", "variants": { @@ -5635,8 +6590,8 @@ "load_store" ], "longest_path_cycles": [ - 2.9700000286102295, - 5.0, + 3.299999952316284, + 7.0, 0.0 ], "pipelines": [ @@ -5648,32 +6603,153 @@ "load_store" ], "shortest_path_cycles": [ - 2.9700000286102295, - 5.0, + 3.299999952316284, + 7.0, + 0.0 + ], + "total_bound_pipelines": [ + "load_store" + ], + "total_cycles": [ + 3.3333332538604736, + 7.0, + 0.0 + ] + }, + "thread_occupancy": 100, + "uniform_registers_used": 4, + "work_registers_used": 3 + } + } + } + }, + "flutter/impeller/entity/gles/gaussian_blur_alpha_decal.frag.gles": { + "Mali-G78": { + "core": "Mali-G78", + "filename": "flutter/impeller/entity/gles/gaussian_blur_alpha_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, + "variants": { + "Main": { + "fp16_arithmetic": 63, + "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", + "arith_sfu", + "varying" + ], + "shortest_path_cycles": [ + 0.25, + 0.171875, + 0.25, + 0.25, + 0.0, + 0.25, + 0.0 + ], + "total_bound_pipelines": [ + "arith_total", + "arith_sfu", + "varying", + "texture" + ], + "total_cycles": [ + 0.5, + 0.359375, + 0.484375, + 0.5, + 0.0, + 0.5, + 0.5 + ] + }, + "stack_spill_bytes": 0, + "thread_occupancy": 100, + "uniform_registers_used": 10, + "work_registers_used": 21 + } + } + }, + "Mali-T880": { + "core": "Mali-T880", + "filename": "flutter/impeller/entity/gles/gaussian_blur_alpha_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" + ], + "shortest_path_cycles": [ + 4.619999885559082, + 2.0, 0.0 ], "total_bound_pipelines": [ - "load_store" + "arithmetic" ], "total_cycles": [ - 3.0, - 5.0, - 0.0 + 8.666666984558105, + 2.0, + 2.0 ] }, "thread_occupancy": 100, - "uniform_registers_used": 4, - "work_registers_used": 2 + "uniform_registers_used": 2, + "work_registers_used": 4 } } } }, - "flutter/impeller/entity/gles/color_matrix_color_filter.frag.gles": { + "flutter/impeller/entity/gles/gaussian_blur_alpha_nodecal.frag.gles": { "Mali-G78": { "core": "Mali-G78", - "filename": "flutter/impeller/entity/gles/color_matrix_color_filter.frag.gles", + "filename": "flutter/impeller/entity/gles/gaussian_blur_alpha_nodecal.frag.gles", "has_side_effects": false, - "has_uniform_computation": false, + "has_uniform_computation": true, "modifies_coverage": false, "reads_color_buffer": false, "type": "Fragment", @@ -5681,23 +6757,20 @@ "uses_late_zs_update": false, "variants": { "Main": { - "fp16_arithmetic": 100, + "fp16_arithmetic": 58, "has_stack_spilling": false, "performance": { "longest_path_bound_pipelines": [ - "arith_total", - "arith_fma", - "varying", - "texture" + null ], "longest_path_cycles": [ - 0.25, - 0.25, - 0.09375, - 0.0625, - 0.0, - 0.25, - 0.25 + null, + null, + null, + null, + null, + null, + null ], "pipelines": [ "arith_total", @@ -5709,46 +6782,42 @@ "texture" ], "shortest_path_bound_pipelines": [ - "arith_total", - "arith_fma", "varying", "texture" ], "shortest_path_cycles": [ - 0.25, - 0.25, - 0.0625, + 0.171875, + 0.171875, + 0.109375, 0.0625, 0.0, 0.25, 0.25 ], "total_bound_pipelines": [ - "arith_total", - "arith_fma", "varying", "texture" ], "total_cycles": [ - 0.25, - 0.25, - 0.09375, - 0.0625, + 0.359375, + 0.359375, + 0.234375, + 0.125, 0.0, - 0.25, - 0.25 + 0.5, + 0.5 ] }, "stack_spill_bytes": 0, "thread_occupancy": 100, - "uniform_registers_used": 14, - "work_registers_used": 21 + "uniform_registers_used": 12, + "work_registers_used": 20 } } }, "Mali-T880": { "core": "Mali-T880", - "filename": "flutter/impeller/entity/gles/color_matrix_color_filter.frag.gles", + "filename": "flutter/impeller/entity/gles/gaussian_blur_alpha_nodecal.frag.gles", "has_uniform_computation": false, "type": "Fragment", "variants": { @@ -5756,12 +6825,12 @@ "has_stack_spilling": false, "performance": { "longest_path_bound_pipelines": [ - "arithmetic" + null ], "longest_path_cycles": [ - 2.640000104904175, - 1.0, - 1.0 + null, + null, + null ], "pipelines": [ "arithmetic", @@ -5772,47 +6841,53 @@ "arithmetic" ], "shortest_path_cycles": [ - 2.640000104904175, - 1.0, + 3.299999952316284, + 2.0, 1.0 ], "total_bound_pipelines": [ "arithmetic" ], "total_cycles": [ - 3.0, - 1.0, - 1.0 + 5.333333492279053, + 2.0, + 2.0 ] }, "thread_occupancy": 100, - "uniform_registers_used": 3, - "work_registers_used": 2 + "uniform_registers_used": 2, + "work_registers_used": 4 } } } }, - "flutter/impeller/entity/gles/color_matrix_color_filter.vert.gles": { + "flutter/impeller/entity/gles/gaussian_blur_noalpha_decal.frag.gles": { "Mali-G78": { "core": "Mali-G78", - "filename": "flutter/impeller/entity/gles/color_matrix_color_filter.vert.gles", + "filename": "flutter/impeller/entity/gles/gaussian_blur_noalpha_decal.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": 80, + "Main": { + "fp16_arithmetic": 61, "has_stack_spilling": false, "performance": { "longest_path_bound_pipelines": [ - "load_store" + null ], "longest_path_cycles": [ - 0.078125, - 0.078125, - 0.046875, - 0.0, - 2.0, - 0.0 + null, + null, + null, + null, + null, + null, + null ], "pipelines": [ "arith_total", @@ -5820,105 +6895,59 @@ "arith_cvt", "arith_sfu", "load_store", + "varying", "texture" ], "shortest_path_bound_pipelines": [ - "load_store" + "arith_total", + "arith_cvt" ], "shortest_path_cycles": [ - 0.078125, 0.078125, 0.046875, - 0.0, - 2.0, - 0.0 - ], - "total_bound_pipelines": [ - "load_store" - ], - "total_cycles": [ - 0.078125, 0.078125, - 0.046875, - 0.0, - 2.0, - 0.0 - ] - }, - "stack_spill_bytes": 0, - "thread_occupancy": 100, - "uniform_registers_used": 16, - "work_registers_used": 32 - }, - "Varying": { - "fp16_arithmetic": 100, - "has_stack_spilling": false, - "performance": { - "longest_path_bound_pipelines": [ - "load_store" - ], - "longest_path_cycles": [ - 0.03125, - 0.015625, - 0.03125, + 0.0625, 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.03125, - 0.015625, - 0.03125, 0.0, - 3.0, 0.0 ], "total_bound_pipelines": [ - "load_store" + "arith_total", + "arith_sfu" ], "total_cycles": [ - 0.03125, - 0.015625, - 0.03125, + 0.3125, + 0.234375, + 0.296875, + 0.3125, 0.0, - 3.0, - 0.0 + 0.25, + 0.25 ] }, "stack_spill_bytes": 0, "thread_occupancy": 100, - "uniform_registers_used": 10, - "work_registers_used": 7 + "uniform_registers_used": 8, + "work_registers_used": 20 } } }, "Mali-T880": { "core": "Mali-T880", - "filename": "flutter/impeller/entity/gles/color_matrix_color_filter.vert.gles", + "filename": "flutter/impeller/entity/gles/gaussian_blur_noalpha_decal.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, - 4.0, - 0.0 + null, + null, + null ], "pipelines": [ "arithmetic", @@ -5926,33 +6955,33 @@ "texture" ], "shortest_path_bound_pipelines": [ - "load_store" + "arithmetic" ], "shortest_path_cycles": [ 2.9700000286102295, - 4.0, + 1.0, 0.0 ], "total_bound_pipelines": [ - "load_store" + "arithmetic" ], "total_cycles": [ - 3.0, - 4.0, - 0.0 + 6.666666507720947, + 1.0, + 1.0 ] }, "thread_occupancy": 100, - "uniform_registers_used": 4, - "work_registers_used": 2 + "uniform_registers_used": 1, + "work_registers_used": 4 } } } }, - "flutter/impeller/entity/gles/conical_gradient_fill.frag.gles": { + "flutter/impeller/entity/gles/gaussian_blur_noalpha_nodecal.frag.gles": { "Mali-G78": { "core": "Mali-G78", - "filename": "flutter/impeller/entity/gles/conical_gradient_fill.frag.gles", + "filename": "flutter/impeller/entity/gles/gaussian_blur_noalpha_nodecal.frag.gles", "has_side_effects": false, "has_uniform_computation": true, "modifies_coverage": false, @@ -5962,7 +6991,7 @@ "uses_late_zs_update": false, "variants": { "Main": { - "fp16_arithmetic": 61, + "fp16_arithmetic": 57, "has_stack_spilling": false, "performance": { "longest_path_bound_pipelines": [ @@ -5991,39 +7020,39 @@ "arith_cvt" ], "shortest_path_cycles": [ - 0.25, - 0.234375, - 0.25, - 0.1875, + 0.078125, + 0.046875, + 0.078125, + 0.0625, + 0.0, 0.0, - 0.125, 0.0 ], "total_bound_pipelines": [ - "arith_total", - "arith_cvt" + "varying", + "texture" ], "total_cycles": [ - 0.59375, - 0.375, - 0.59375, - 0.1875, - 0.0, + 0.234375, + 0.234375, + 0.203125, 0.125, + 0.0, + 0.25, 0.25 ] }, "stack_spill_bytes": 0, "thread_occupancy": 100, - "uniform_registers_used": 14, + "uniform_registers_used": 8, "work_registers_used": 20 } } }, "Mali-T880": { "core": "Mali-T880", - "filename": "flutter/impeller/entity/gles/conical_gradient_fill.frag.gles", - "has_uniform_computation": true, + "filename": "flutter/impeller/entity/gles/gaussian_blur_noalpha_nodecal.frag.gles", + "has_uniform_computation": false, "type": "Fragment", "variants": { "Main": { @@ -6046,7 +7075,7 @@ "arithmetic" ], "shortest_path_cycles": [ - 1.9800000190734863, + 2.309999942779541, 1.0, 0.0 ], @@ -6054,14 +7083,14 @@ "arithmetic" ], "total_cycles": [ - 9.333333015441895, + 4.333333492279053, 1.0, 1.0 ] }, "thread_occupancy": 100, - "uniform_registers_used": 3, - "work_registers_used": 2 + "uniform_registers_used": 1, + "work_registers_used": 4 } } }