diff --git a/impeller/renderer/backend/gles/render_pass_gles.cc b/impeller/renderer/backend/gles/render_pass_gles.cc index 2d06ad7126c1c..31515b1537e0b 100644 --- a/impeller/renderer/backend/gles/render_pass_gles.cc +++ b/impeller/renderer/backend/gles/render_pass_gles.cc @@ -100,7 +100,7 @@ void ConfigureStencil(const ProcTableGLES& gl, gl.Enable(GL_STENCIL_TEST); const auto& front = pipeline.GetFrontStencilAttachmentDescriptor(); const auto& back = pipeline.GetBackStencilAttachmentDescriptor(); - if (front == back) { + if (front.has_value() && front == back) { ConfigureStencil(GL_FRONT_AND_BACK, gl, *front, stencil_reference); } else if (front.has_value()) { ConfigureStencil(GL_FRONT, gl, *front, stencil_reference); diff --git a/impeller/renderer/backend/vulkan/command_encoder_vk.cc b/impeller/renderer/backend/vulkan/command_encoder_vk.cc index 7b234b470c1dc..d90e5caa4b211 100644 --- a/impeller/renderer/backend/vulkan/command_encoder_vk.cc +++ b/impeller/renderer/backend/vulkan/command_encoder_vk.cc @@ -14,8 +14,9 @@ namespace impeller { class TrackedObjectsVK { public: - explicit TrackedObjectsVK(std::weak_ptr device_holder, - const std::shared_ptr& pool) + explicit TrackedObjectsVK( + const std::weak_ptr& device_holder, + const std::shared_ptr& pool) : desc_pool_(device_holder) { if (!pool) { return; @@ -96,7 +97,7 @@ class TrackedObjectsVK { }; CommandEncoderVK::CommandEncoderVK( - std::weak_ptr device_holder, + const std::weak_ptr& device_holder, const std::shared_ptr& queue, const std::shared_ptr& pool, std::shared_ptr fence_waiter) diff --git a/impeller/renderer/backend/vulkan/command_encoder_vk.h b/impeller/renderer/backend/vulkan/command_encoder_vk.h index d160385472702..e7b5d4c74f270 100644 --- a/impeller/renderer/backend/vulkan/command_encoder_vk.h +++ b/impeller/renderer/backend/vulkan/command_encoder_vk.h @@ -76,7 +76,7 @@ class CommandEncoderVK { std::shared_ptr tracked_objects_; bool is_valid_ = false; - CommandEncoderVK(std::weak_ptr device_holder, + CommandEncoderVK(const std::weak_ptr& device_holder, const std::shared_ptr& queue, const std::shared_ptr& pool, std::shared_ptr fence_waiter); diff --git a/impeller/renderer/backend/vulkan/context_vk.cc b/impeller/renderer/backend/vulkan/context_vk.cc index a46a7a1eaf671..a23aa60eaabe0 100644 --- a/impeller/renderer/backend/vulkan/context_vk.cc +++ b/impeller/renderer/backend/vulkan/context_vk.cc @@ -227,7 +227,7 @@ void ContextVK::Setup(Settings settings) { VALIDATION_LOG << "No valid Vulkan device found."; return; } - device_holder->physical_device = std::move(physical_device.value()); + device_holder->physical_device = physical_device.value(); } //---------------------------------------------------------------------------- diff --git a/impeller/renderer/backend/vulkan/descriptor_pool_vk.cc b/impeller/renderer/backend/vulkan/descriptor_pool_vk.cc index 7d2a6c4c5eccb..8c58ddfff1cd0 100644 --- a/impeller/renderer/backend/vulkan/descriptor_pool_vk.cc +++ b/impeller/renderer/backend/vulkan/descriptor_pool_vk.cc @@ -10,7 +10,7 @@ namespace impeller { DescriptorPoolVK::DescriptorPoolVK( - std::weak_ptr device_holder) + const std::weak_ptr& device_holder) : device_holder_(device_holder) { FML_DCHECK(device_holder.lock()); } diff --git a/impeller/renderer/backend/vulkan/descriptor_pool_vk.h b/impeller/renderer/backend/vulkan/descriptor_pool_vk.h index 5fb05d5827cb9..72b2da38408c6 100644 --- a/impeller/renderer/backend/vulkan/descriptor_pool_vk.h +++ b/impeller/renderer/backend/vulkan/descriptor_pool_vk.h @@ -27,7 +27,8 @@ namespace impeller { /// class DescriptorPoolVK { public: - explicit DescriptorPoolVK(std::weak_ptr device_holder); + explicit DescriptorPoolVK( + const std::weak_ptr& device_holder); ~DescriptorPoolVK(); diff --git a/impeller/renderer/backend/vulkan/fence_waiter_vk.cc b/impeller/renderer/backend/vulkan/fence_waiter_vk.cc index f17e5218d9175..4c5d27f95e9cb 100644 --- a/impeller/renderer/backend/vulkan/fence_waiter_vk.cc +++ b/impeller/renderer/backend/vulkan/fence_waiter_vk.cc @@ -12,7 +12,7 @@ namespace impeller { FenceWaiterVK::FenceWaiterVK(std::weak_ptr device_holder) - : device_holder_(device_holder) { + : device_holder_(std::move(device_holder)) { waiter_thread_ = std::make_unique([&]() { Main(); }); is_valid_ = true; } @@ -81,7 +81,7 @@ void FenceWaiterVK::Main() { } std::optional> FenceWaiterVK::TrimAndCreateWaitSetLocked( - std::shared_ptr device_holder) { + const std::shared_ptr& device_holder) { if (terminate_) { return std::nullopt; } diff --git a/impeller/renderer/backend/vulkan/fence_waiter_vk.h b/impeller/renderer/backend/vulkan/fence_waiter_vk.h index aecc5a63a81cc..c831f2800af5f 100644 --- a/impeller/renderer/backend/vulkan/fence_waiter_vk.h +++ b/impeller/renderer/backend/vulkan/fence_waiter_vk.h @@ -47,7 +47,7 @@ class FenceWaiterVK { void Main(); std::optional> TrimAndCreateWaitSetLocked( - std::shared_ptr device_holder); + const std::shared_ptr& device_holder); FML_DISALLOW_COPY_AND_ASSIGN(FenceWaiterVK); }; diff --git a/impeller/renderer/backend/vulkan/pipeline_vk.cc b/impeller/renderer/backend/vulkan/pipeline_vk.cc index bc971cd7695a9..c1ca1e3084765 100644 --- a/impeller/renderer/backend/vulkan/pipeline_vk.cc +++ b/impeller/renderer/backend/vulkan/pipeline_vk.cc @@ -14,7 +14,7 @@ PipelineVK::PipelineVK(std::weak_ptr device_holder, vk::UniquePipelineLayout layout, vk::UniqueDescriptorSetLayout descriptor_set_layout) : Pipeline(std::move(library), desc), - device_holder_(device_holder), + device_holder_(std::move(device_holder)), pipeline_(std::move(pipeline)), render_pass_(std::move(render_pass)), layout_(std::move(layout)), diff --git a/impeller/renderer/backend/vulkan/shader_library_vk.cc b/impeller/renderer/backend/vulkan/shader_library_vk.cc index 3988e156a6e51..ea92c36258b94 100644 --- a/impeller/renderer/backend/vulkan/shader_library_vk.cc +++ b/impeller/renderer/backend/vulkan/shader_library_vk.cc @@ -55,7 +55,7 @@ static std::string VKShaderNameToShaderKeyName(const std::string& name, ShaderLibraryVK::ShaderLibraryVK( std::weak_ptr device_holder, const std::vector>& shader_libraries_data) - : device_holder_(device_holder) { + : device_holder_(std::move(device_holder)) { TRACE_EVENT0("impeller", "CreateShaderLibrary"); bool success = true; auto iterator = [&](auto type, //