message: fg: fix an issue with imported rendertargets
  when a resource that is also an attachment of a rendertarget is aliased
  (with moveResource) with a resource from an imported rendertarget, the later
  wouldn't always replace the former as expected.
diff: @@ -850,6 +850,7 @@ FrameGraph& FrameGraph::compile() noexcept {
  */
  if (!mAliases.empty()) {
  + Vector<filament::fg::RenderTarget>& renderTargets = mRenderTargets;
  Vector<FrameGraphResource> sratch(mArena); // keep out of loops to avoid reallocations
  for (fg::Alias const& alias : mAliases) {
  // disconnect all writes to "from"
  @@ -863,6 +864,25 @@ FrameGraph& FrameGraph::compile() noexcept {
  }
  }
  + // TODO: make this better
  + // When replacing a resource from an imported render-target, we find all existing
  + // render-target that used that resource as the color attachment, and we clear
  + // all other attachments -- we have to do this because the resource aliasing
  + // must also alias the render targets.
  + // For instance, if a render-target was declared with a color+depth attachment,
  + // and the color attachment was aliased with an imported render-target, the
  + // render-target cache (see: equals()) wouldn't match it (because the depth
  + // attachment would be missing).
  + for (fg::RenderTarget& rt : renderTargets) {
  + auto& textures = rt.desc.attachments.textures;
  + ResourceNode const& node = resourceNodes[textures[0].index];
  + if (node.resource->imported && node.resource == from.resource) {
  + for (size_t i = 1; i < textures.size(); ++i) {
  + textures[i] = {};
  + }
  + }
  + }
  +
  for (PassNode& pass : passNodes) {
  // passes that were reading from "from node", now read from "to node" as well
  for (FrameGraphResource handle : pass.reads) {
  