From 9bf295c777ad20cb6daa5ee9859b68b70284688d Mon Sep 17 00:00:00 2001 From: skia-flutter-autoroll Date: Tue, 2 Aug 2022 13:14:06 -0400 Subject: [PATCH 1/4] Roll Dart SDK from d2452b2c8380 to 9b8f6f48deb7 (1 revision) (#35094) --- DEPS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DEPS b/DEPS index 87101bde5a6d7..20cd61ae1515f 100644 --- a/DEPS +++ b/DEPS @@ -36,7 +36,7 @@ vars = { # Dart is: https://github.com/dart-lang/sdk/blob/main/DEPS. # You can use //tools/dart/create_updated_flutter_deps.py to produce # updated revision list of existing dependencies. - 'dart_revision': 'd2452b2c8380b32be5539429908949901b1b0628', + 'dart_revision': '9b8f6f48deb701f15a8a190953b17d6e77b1d0c7', # WARNING: DO NOT EDIT MANUALLY # The lines between blank lines above and below are generated by a script. See create_updated_flutter_deps.py From 93ef6b1adca965cdddc624f6fbe8af1932381373 Mon Sep 17 00:00:00 2001 From: skia-flutter-autoroll Date: Tue, 2 Aug 2022 13:32:04 -0400 Subject: [PATCH 2/4] Roll Skia from ae50bb0abc7b to df16e5713326 (4 revisions) (#35095) --- DEPS | 2 +- ci/licenses_golden/licenses_skia | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/DEPS b/DEPS index 20cd61ae1515f..092c06e0461a7 100644 --- a/DEPS +++ b/DEPS @@ -18,7 +18,7 @@ vars = { 'llvm_git': 'https://llvm.googlesource.com', # OCMock is for testing only so there is no google clone 'ocmock_git': 'https://github.com/erikdoe/ocmock.git', - 'skia_revision': 'ae50bb0abc7b6efb5e14fcf761eaf9b4a7e1f2de', + 'skia_revision': 'df16e5713326301bf47952e29fed3ff175929b30', # WARNING: DO NOT EDIT canvaskit_cipd_instance MANUALLY # See `lib/web_ui/README.md` for how to roll CanvasKit to a new version. diff --git a/ci/licenses_golden/licenses_skia b/ci/licenses_golden/licenses_skia index e2565544d5604..0252fac8745d0 100644 --- a/ci/licenses_golden/licenses_skia +++ b/ci/licenses_golden/licenses_skia @@ -1,4 +1,4 @@ -Signature: 8e06edb0dc21640d00a05e5a9f5be097 +Signature: c94e796c85e69ba0fe547921f7df9858 UNUSED LICENSES: From ffac56a7898b7b63cdff81b77a32c1173e03929b Mon Sep 17 00:00:00 2001 From: Kaushik Iska Date: Tue, 2 Aug 2022 14:01:05 -0400 Subject: [PATCH 3/4] [Impeller] [Vulkan] Generate descriptor set layouts in backend agnostic way (#35091) --- ci/licenses_golden/licenses_flutter | 1 + impeller/compiler/code_gen_template.h | 30 +++++++++++------------ impeller/renderer/BUILD.gn | 1 + impeller/renderer/descriptor_set_layout.h | 27 ++++++++++++++++++++ impeller/renderer/pipeline_builder.h | 7 ++++++ impeller/renderer/vertex_descriptor.cc | 15 ++++++++++++ impeller/renderer/vertex_descriptor.h | 13 ++++++++++ 7 files changed, 78 insertions(+), 16 deletions(-) create mode 100644 impeller/renderer/descriptor_set_layout.h diff --git a/ci/licenses_golden/licenses_flutter b/ci/licenses_golden/licenses_flutter index e4550afff2c17..1e5fa58c911ea 100644 --- a/ci/licenses_golden/licenses_flutter +++ b/ci/licenses_golden/licenses_flutter @@ -800,6 +800,7 @@ FILE: ../../../flutter/impeller/renderer/command_buffer.cc FILE: ../../../flutter/impeller/renderer/command_buffer.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_unittests.cc diff --git a/impeller/compiler/code_gen_template.h b/impeller/compiler/code_gen_template.h index 4a061fcadb5ad..7769f02779524 100644 --- a/impeller/compiler/code_gen_template.h +++ b/impeller/compiler/code_gen_template.h @@ -16,15 +16,17 @@ constexpr std::string_view kReflectionHeaderTemplate = {# Note: The nogncheck decorations are only to make GN not mad at the template#} {# this file is generated from. There are no GN rule violations in the generated#} {# file itself and the no-check declarations will be stripped in generated files.#} -#include "impeller/renderer/buffer_view.h" {# // nogncheck #} +#include "impeller/renderer/buffer_view.h" {# // nogncheck #} -#include "impeller/renderer/command.h" {# // nogncheck #} +#include "impeller/renderer/command.h" {# // nogncheck #} -#include "impeller/renderer/sampler.h" {# // nogncheck #} +#include "impeller/renderer/descriptor_set_layout.h" {# // nogncheck #} -#include "impeller/renderer/shader_types.h" {# // nogncheck #} +#include "impeller/renderer/sampler.h" {# // nogncheck #} -#include "impeller/renderer/texture.h" {# // nogncheck #} +#include "impeller/renderer/shader_types.h" {# // nogncheck #} + +#include "impeller/renderer/texture.h" {# // nogncheck #} namespace impeller { @@ -150,30 +152,26 @@ std::move({{ arg.argument_name }}){% if not loop.is_last %}, {% endif %} // =========================================================================== // Metadata for Vulkan ======================================================= // =========================================================================== -#ifdef IMPELLER_ENABLE_VULKAN_REFLECTION {% if length(buffers)+length(sampled_images) > 0 %} - static constexpr std::array kDescriptorSetLayouts{ + static constexpr std::array kDescriptorSetLayouts{ {% for buffer in buffers %} - VkDescriptorSetLayoutBinding{ + DescriptorSetLayout{ {{buffer.binding}}, // binding = {{buffer.binding}} - VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, // descriptorType = Uniform Buffer + DescriptorType::kUniformBuffer, // descriptorType = Uniform Buffer 1, // descriptorCount = 1 - {{to_vk_shader_stage_flag_bits(shader_stage)}}, // stageFlags = {{to_shader_stage(shader_stage)}} - nullptr, // pImmutableSamplers = NULL + {{to_shader_stage(shader_stage)}}, // stageFlags = {{to_shader_stage(shader_stage)}} }, {% endfor %} {% for sampled_image in sampled_images %} - VkDescriptorSetLayoutBinding{ + DescriptorSetLayout{ {{sampled_image.binding}}, // binding = {{sampled_image.binding}} - VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, // descriptorType = Sampled Image + DescriptorType::kSampledImage, // descriptorType = Sampled Image 1, // descriptorCount = 1 - {{to_vk_shader_stage_flag_bits(shader_stage)}},// stageFlags = {{to_shader_stage(shader_stage)}} - nullptr, // pImmutableSamplers = NULL + {{to_shader_stage(shader_stage)}}, // stageFlags = {{to_shader_stage(shader_stage)}} }, {% endfor %} }; {% endif %} -#endif }; // struct {{camel_case(shader_name)}}{{camel_case(shader_stage)}}Shader diff --git a/impeller/renderer/BUILD.gn b/impeller/renderer/BUILD.gn index 9223f4646fb5f..460502c838a61 100644 --- a/impeller/renderer/BUILD.gn +++ b/impeller/renderer/BUILD.gn @@ -22,6 +22,7 @@ impeller_component("renderer") { "command_buffer.h", "context.cc", "context.h", + "descriptor_set_layout.h", "device_buffer.cc", "device_buffer.h", "formats.cc", diff --git a/impeller/renderer/descriptor_set_layout.h b/impeller/renderer/descriptor_set_layout.h new file mode 100644 index 0000000000000..d853f0a663086 --- /dev/null +++ b/impeller/renderer/descriptor_set_layout.h @@ -0,0 +1,27 @@ +// 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. + +#pragma once + +#include +#include + +#include "flutter/fml/macros.h" +#include "impeller/renderer/shader_types.h" + +namespace impeller { + +enum class DescriptorType { + kSampledImage, + kUniformBuffer, +}; + +struct DescriptorSetLayout { + uint32_t binding; + DescriptorType descriptor_type; + uint32_t descriptor_count; + ShaderStage shader_stage; +}; + +} // namespace impeller diff --git a/impeller/renderer/pipeline_builder.h b/impeller/renderer/pipeline_builder.h index 44cd202997cd9..92def4e50b7ea 100644 --- a/impeller/renderer/pipeline_builder.h +++ b/impeller/renderer/pipeline_builder.h @@ -93,6 +93,13 @@ struct PipelineBuilder { << VertexShader::kLabel << "'."; return false; } + if (!vertex_descriptor->SetDescriptorSetLayouts( + VertexShader::kDescriptorSetLayouts)) { + VALIDATION_LOG << "Cound not configure vertex descriptor set layout for" + " pipeline named '" + << VertexShader::kLabel << "'."; + return false; + } desc.SetVertexDescriptor(std::move(vertex_descriptor)); } diff --git a/impeller/renderer/vertex_descriptor.cc b/impeller/renderer/vertex_descriptor.cc index a40efb31c5eb3..963a7478a1696 100644 --- a/impeller/renderer/vertex_descriptor.cc +++ b/impeller/renderer/vertex_descriptor.cc @@ -20,6 +20,16 @@ bool VertexDescriptor::SetStageInputs( return true; } +bool VertexDescriptor::SetDescriptorSetLayouts( + const DescriptorSetLayout desc_set_layout[], + size_t count) { + desc_set_layouts_.reserve(desc_set_layouts_.size() + count); + for (size_t i = 0; i < count; i++) { + desc_set_layouts_.emplace_back(desc_set_layout[i]); + } + return true; +} + // |Comparable| size_t VertexDescriptor::GetHash() const { auto seed = fml::HashCombine(); @@ -38,4 +48,9 @@ const std::vector& VertexDescriptor::GetStageInputs() const { return inputs_; } +const std::vector& +VertexDescriptor::GetDescriptorSetLayouts() const { + return desc_set_layouts_; +} + } // namespace impeller diff --git a/impeller/renderer/vertex_descriptor.h b/impeller/renderer/vertex_descriptor.h index 4bef9b86d3644..dffe6694f7caf 100644 --- a/impeller/renderer/vertex_descriptor.h +++ b/impeller/renderer/vertex_descriptor.h @@ -8,6 +8,7 @@ #include "flutter/fml/macros.h" #include "impeller/base/comparable.h" +#include "impeller/renderer/descriptor_set_layout.h" #include "impeller/renderer/shader_types.h" namespace impeller { @@ -36,11 +37,22 @@ class VertexDescriptor final : public Comparable { return SetStageInputs(inputs.data(), inputs.size()); } + template + bool SetDescriptorSetLayouts( + const std::array& inputs) { + return SetDescriptorSetLayouts(inputs.data(), inputs.size()); + } + bool SetStageInputs(const ShaderStageIOSlot* const stage_inputs[], size_t count); + bool SetDescriptorSetLayouts(const DescriptorSetLayout desc_set_layout[], + size_t count); + const std::vector& GetStageInputs() const; + const std::vector& GetDescriptorSetLayouts() const; + // |Comparable| std::size_t GetHash() const override; @@ -49,6 +61,7 @@ class VertexDescriptor final : public Comparable { private: std::vector inputs_; + std::vector desc_set_layouts_; FML_DISALLOW_COPY_AND_ASSIGN(VertexDescriptor); }; From 2b3173254281a04500b6004b137d7932af8da793 Mon Sep 17 00:00:00 2001 From: godofredoc Date: Tue, 2 Aug 2022 11:13:04 -0700 Subject: [PATCH 4/4] Zip the dsym artifacts. (#35075) --- sky/tools/create_macos_framework.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/sky/tools/create_macos_framework.py b/sky/tools/create_macos_framework.py index 42380f97aa42a..c34e20216ca1d 100755 --- a/sky/tools/create_macos_framework.py +++ b/sky/tools/create_macos_framework.py @@ -101,6 +101,11 @@ def process_framework(dst, args, fat_framework, fat_framework_binary): if args.dsym: dsym_out = os.path.splitext(fat_framework)[0] + '.dSYM' subprocess.check_call([DSYMUTIL, '-o', dsym_out, fat_framework_binary]) + subprocess.check_call([ + 'zip', '-r', + '%s/FlutterMacOS.dSYM.zip' % dst, + '%s/FlutterMacOS.dSYM/Contents' % dst + ]) if args.strip: # copy unstripped