From 4f2aeb7e761782cc84b26d285c1741316a97d5fc Mon Sep 17 00:00:00 2001 From: "auto-submit[bot]" <98614782+auto-submit[bot]@users.noreply.github.com> Date: Wed, 22 Nov 2023 20:09:17 +0000 Subject: [PATCH] Reverts "[Impeller] pass const ref to binding helpers." (flutter/engine#48330) Reverts flutter/engine#48318 Initiated by: jonahwilliams This change reverts the following previous change: Original Description: No point in passing by value and moving, just pass a const ref through. Trivial performance improvement. # Before ```cpp /// Bind uniform buffer for resource named FragInfo. static bool BindFragInfo(ResourceBinder& command, BufferView view) { return command.BindResource(ShaderStage::kFragment, kResourceFragInfo, kMetadataFragInfo, std::move(view)); } /// Bind combined image sampler for resource named texture_sampler. static bool BindTextureSampler(ResourceBinder& command, std::shared_ptr texture, std::shared_ptr sampler) { return command.BindResource(ShaderStage::kFragment, kResourceTextureSampler, kMetadataTextureSampler, std::move(texture), std::move(sampler)); } ``` # After ```cpp /// Bind uniform buffer for resource named FragInfo. static bool BindFragInfo(ResourceBinder& command, const BufferView& view) { return command.BindResource(ShaderStage::kFragment, kResourceFragInfo, kMetadataFragInfo, view); } /// Bind combined image sampler for resource named texture_sampler. static bool BindTextureSampler(ResourceBinder& command, const std::shared_ptr& texture, const std::shared_ptr& sampler) { return command.BindResource(ShaderStage::kFragment, kResourceTextureSampler, kMetadataTextureSampler, texture, sampler); } ``` --- .../flutter/impeller/compiler/code_gen_template.h | 2 +- engine/src/flutter/impeller/compiler/reflector.cc | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/engine/src/flutter/impeller/compiler/code_gen_template.h b/engine/src/flutter/impeller/compiler/code_gen_template.h index e0f1a18257a..61f442d824d 100644 --- a/engine/src/flutter/impeller/compiler/code_gen_template.h +++ b/engine/src/flutter/impeller/compiler/code_gen_template.h @@ -163,7 +163,7 @@ struct {{camel_case(shader_name)}}{{camel_case(shader_stage)}}Shader { return {{ proto.args.0.argument_name }}.BindResource({% for arg in proto.args %} {% if loop.is_first %} {{to_shader_stage(shader_stage)}}, kResource{{ proto.name }}, kMetadata{{ proto.name }}, {% else %} -{{ arg.argument_name }}{% if not loop.is_last %}, {% endif %} +std::move({{ arg.argument_name }}){% if not loop.is_last %}, {% endif %} {% endif %} {% endfor %}); } diff --git a/engine/src/flutter/impeller/compiler/reflector.cc b/engine/src/flutter/impeller/compiler/reflector.cc index 1a7a68d3828..d4114223384 100644 --- a/engine/src/flutter/impeller/compiler/reflector.cc +++ b/engine/src/flutter/impeller/compiler/reflector.cc @@ -1137,7 +1137,7 @@ std::vector Reflector::ReflectBindPrototypes( .argument_name = "command", }); proto.args.push_back(BindPrototypeArgument{ - .type_name = "const BufferView&", + .type_name = "BufferView", .argument_name = "view", }); } @@ -1156,7 +1156,7 @@ std::vector Reflector::ReflectBindPrototypes( .argument_name = "command", }); proto.args.push_back(BindPrototypeArgument{ - .type_name = "const BufferView&", + .type_name = "BufferView", .argument_name = "view", }); } @@ -1175,11 +1175,11 @@ std::vector Reflector::ReflectBindPrototypes( .argument_name = "command", }); proto.args.push_back(BindPrototypeArgument{ - .type_name = "const std::shared_ptr&", + .type_name = "std::shared_ptr", .argument_name = "texture", }); proto.args.push_back(BindPrototypeArgument{ - .type_name = "const std::shared_ptr&", + .type_name = "std::shared_ptr", .argument_name = "sampler", }); } @@ -1198,7 +1198,7 @@ std::vector Reflector::ReflectBindPrototypes( .argument_name = "command", }); proto.args.push_back(BindPrototypeArgument{ - .type_name = "const std::shared_ptr&", + .type_name = "std::shared_ptr", .argument_name = "texture", }); } @@ -1217,7 +1217,7 @@ std::vector Reflector::ReflectBindPrototypes( .argument_name = "command", }); proto.args.push_back(BindPrototypeArgument{ - .type_name = "const std::shared_ptr&", + .type_name = "std::shared_ptr", .argument_name = "sampler", }); }