diff --git a/impeller/aiks/experimental_canvas.cc b/impeller/aiks/experimental_canvas.cc index fef77a4890b31..f0ab00974f439 100644 --- a/impeller/aiks/experimental_canvas.cc +++ b/impeller/aiks/experimental_canvas.cc @@ -495,7 +495,8 @@ bool ExperimentalCanvas::Restore() { PaintPassDelegate(save_layer_state.paint) .CreateContentsForSubpassTarget( lazy_render_pass.inline_pass_context->GetTexture(), - transform_stack_.back().transform); + Matrix::MakeTranslation(Vector3{-GetGlobalPassPosition()}) * + transform_stack_.back().transform); lazy_render_pass.inline_pass_context->EndPass(); diff --git a/impeller/display_list/aiks_dl_unittests.cc b/impeller/display_list/aiks_dl_unittests.cc index e8cf7326bcd90..f565b8b6a7214 100644 --- a/impeller/display_list/aiks_dl_unittests.cc +++ b/impeller/display_list/aiks_dl_unittests.cc @@ -771,7 +771,7 @@ TEST_P(AiksTest, MatrixSaveLayerFilter) { DlPaint paint; paint.setColor(DlColor::kBlack()); builder.DrawPaint(paint); - builder.SaveLayer({}, nullptr); + builder.SaveLayer(nullptr, nullptr); { paint.setColor(DlColor::kGreen().withAlpha(255 * 0.5)); paint.setBlendMode(DlBlendMode::kPlus);