SF: Change RenderEngine ownership

This change allows multiple instances of CompositionEngine to use
the same RenderEngine instance which enables creating new instances of
CompositionEngine to run off the main thread. This will be used in the
refactor of SurfaceFlinger::renderScreenImpl to generate LayerSettings
via CompositionEngine.

Bug: 238643986
Test: presubmits

Change-Id: I0c8dc30e091578d0d77afb434a52038db6e82288
diff --git a/services/surfaceflinger/SurfaceFlinger.h b/services/surfaceflinger/SurfaceFlinger.h
index 85c194b..1009402 100644
--- a/services/surfaceflinger/SurfaceFlinger.h
+++ b/services/surfaceflinger/SurfaceFlinger.h
@@ -1248,6 +1248,7 @@
     ui::Dataspace mColorSpaceAgnosticDataspace;
     float mDimmingRatio = -1.f;
 
+    std::unique_ptr<renderengine::RenderEngine> mRenderEngine;
     std::unique_ptr<compositionengine::CompositionEngine> mCompositionEngine;
     // mMaxRenderTargetSize is only set once in init() so it doesn't need to be protected by
     // any mutex.