[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;