[Impeller] Remove depth/stencil attachments from imgui pipeline (#38427)
diff --git a/impeller/playground/imgui/imgui_impl_impeller.cc b/impeller/playground/imgui/imgui_impl_impeller.cc index d93a736..443b32d 100644 --- a/impeller/playground/imgui/imgui_impl_impeller.cc +++ b/impeller/playground/imgui/imgui_impl_impeller.cc
@@ -94,12 +94,10 @@ auto desc = impeller::PipelineBuilder<impeller::ImguiRasterVertexShader, impeller::ImguiRasterFragmentShader>:: MakeDefaultPipelineDescriptor(*context); - auto stencil = desc->GetFrontStencilAttachmentDescriptor(); - if (stencil.has_value()) { - stencil->stencil_compare = impeller::CompareFunction::kAlways; - stencil->depth_stencil_pass = impeller::StencilOperation::kKeep; - desc->SetStencilAttachmentDescriptors(stencil.value()); - } + desc->SetStencilPixelFormat(impeller::PixelFormat::kUnknown); + desc->SetStencilAttachmentDescriptors(std::nullopt); + desc->SetDepthPixelFormat(impeller::PixelFormat::kUnknown); + desc->SetDepthStencilAttachmentDescriptor(std::nullopt); bd->pipeline = context->GetPipelineLibrary()->GetPipeline(std::move(desc)).Get();
diff --git a/impeller/renderer/pipeline_descriptor.cc b/impeller/renderer/pipeline_descriptor.cc index c6d8029..aaebe96 100644 --- a/impeller/renderer/pipeline_descriptor.cc +++ b/impeller/renderer/pipeline_descriptor.cc
@@ -135,19 +135,19 @@ } PipelineDescriptor& PipelineDescriptor::SetDepthStencilAttachmentDescriptor( - DepthAttachmentDescriptor desc) { + std::optional<DepthAttachmentDescriptor> desc) { depth_attachment_descriptor_ = desc; return *this; } PipelineDescriptor& PipelineDescriptor::SetStencilAttachmentDescriptors( - StencilAttachmentDescriptor front_and_back) { + std::optional<StencilAttachmentDescriptor> front_and_back) { return SetStencilAttachmentDescriptors(front_and_back, front_and_back); } PipelineDescriptor& PipelineDescriptor::SetStencilAttachmentDescriptors( - StencilAttachmentDescriptor front, - StencilAttachmentDescriptor back) { + std::optional<StencilAttachmentDescriptor> front, + std::optional<StencilAttachmentDescriptor> back) { front_stencil_attachment_descriptor_ = front; back_stencil_attachment_descriptor_ = back; return *this;
diff --git a/impeller/renderer/pipeline_descriptor.h b/impeller/renderer/pipeline_descriptor.h index 7b1ed5a..e7ba72e 100644 --- a/impeller/renderer/pipeline_descriptor.h +++ b/impeller/renderer/pipeline_descriptor.h
@@ -71,17 +71,17 @@ const ColorAttachmentDescriptor* GetLegacyCompatibleColorAttachment() const; PipelineDescriptor& SetDepthStencilAttachmentDescriptor( - DepthAttachmentDescriptor desc); + std::optional<DepthAttachmentDescriptor> desc); std::optional<DepthAttachmentDescriptor> GetDepthStencilAttachmentDescriptor() const; PipelineDescriptor& SetStencilAttachmentDescriptors( - StencilAttachmentDescriptor front_and_back); + std::optional<StencilAttachmentDescriptor> front_and_back); PipelineDescriptor& SetStencilAttachmentDescriptors( - StencilAttachmentDescriptor front, - StencilAttachmentDescriptor back); + std::optional<StencilAttachmentDescriptor> front, + std::optional<StencilAttachmentDescriptor> back); std::optional<StencilAttachmentDescriptor> GetFrontStencilAttachmentDescriptor() const;