Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 53c4e8aa authored by Alec Mouri's avatar Alec Mouri Committed by Android (Google) Code Review
Browse files

Merge "Dispatch texture destruction off of render thread for screenshots" into sc-dev

parents d2bed277 0d995106
Loading
Loading
Loading
Loading
+8 −5
Original line number Diff line number Diff line
@@ -49,7 +49,8 @@ std::unique_ptr<RenderEngine> RenderEngine::create(const RenderEngineCreationArg
        case RenderEngineType::THREADED:
            ALOGD("Threaded RenderEngine with GLES Backend");
            return renderengine::threaded::RenderEngineThreaded::create(
                    [args]() { return android::renderengine::gl::GLESRenderEngine::create(args); });
                    [args]() { return android::renderengine::gl::GLESRenderEngine::create(args); },
                    renderEngineType);
        case RenderEngineType::SKIA_GL:
            ALOGD("RenderEngine with SkiaGL Backend");
            return renderengine::skia::SkiaGLRenderEngine::create(args);
@@ -66,12 +67,14 @@ std::unique_ptr<RenderEngine> RenderEngine::create(const RenderEngineCreationArg
                            .setPrecacheToneMapperShaderOnly(args.precacheToneMapperShaderOnly)
                            .setSupportsBackgroundBlur(args.supportsBackgroundBlur)
                            .setContextPriority(args.contextPriority)
                            .setRenderEngineType(RenderEngineType::SKIA_GL_THREADED)
                            .setRenderEngineType(renderEngineType)
                            .build();
            ALOGD("Threaded RenderEngine with SkiaGL Backend");
            return renderengine::threaded::RenderEngineThreaded::create([skiaArgs]() {
            return renderengine::threaded::RenderEngineThreaded::create(
                    [skiaArgs]() {
                        return android::renderengine::skia::SkiaGLRenderEngine::create(skiaArgs);
            });
                    },
                    renderEngineType);
        }
        case RenderEngineType::GLES:
        default:
+2 −1
Original line number Diff line number Diff line
@@ -379,7 +379,8 @@ EGLConfig GLESRenderEngine::chooseEglConfig(EGLDisplay display, int format, bool
GLESRenderEngine::GLESRenderEngine(const RenderEngineCreationArgs& args, EGLDisplay display,
                                   EGLConfig config, EGLContext ctxt, EGLSurface stub,
                                   EGLContext protectedContext, EGLSurface protectedStub)
      : mEGLDisplay(display),
      : RenderEngine(args.renderEngineType),
        mEGLDisplay(display),
        mEGLConfig(config),
        mEGLContext(ctxt),
        mStubSurface(stub),
+10 −0
Original line number Diff line number Diff line
@@ -87,6 +87,10 @@ public:

    static std::unique_ptr<RenderEngine> create(const RenderEngineCreationArgs& args);

    RenderEngine() : RenderEngine(RenderEngineType::GLES) {}

    RenderEngine(RenderEngineType type) : mRenderEngineType(type) {}

    virtual ~RenderEngine() = 0;

    // ----- BEGIN DEPRECATED INTERFACE -----
@@ -192,8 +196,14 @@ public:
    // also supports background blur.  If false, no blur will be applied when drawing layers.
    virtual bool supportsBackgroundBlur() = 0;

    // Returns the current type of RenderEngine instance that was created.
    // TODO(b/180767535): This is only implemented to allow for backend-specific behavior, which
    // we should not allow in general, so remove this.
    RenderEngineType getRenderEngineType() const { return mRenderEngineType; }

protected:
    friend class threaded::RenderEngineThreaded;
    const RenderEngineType mRenderEngineType;
};

struct RenderEngineCreationArgs {
+3 −3
Original line number Diff line number Diff line
@@ -266,13 +266,13 @@ EGLConfig SkiaGLRenderEngine::chooseEglConfig(EGLDisplay display, int format, bo
SkiaGLRenderEngine::SkiaGLRenderEngine(const RenderEngineCreationArgs& args, EGLDisplay display,
                                       EGLContext ctxt, EGLSurface placeholder,
                                       EGLContext protectedContext, EGLSurface protectedPlaceholder)
      : mEGLDisplay(display),
      : SkiaRenderEngine(args.renderEngineType),
        mEGLDisplay(display),
        mEGLContext(ctxt),
        mPlaceholderSurface(placeholder),
        mProtectedEGLContext(protectedContext),
        mProtectedPlaceholderSurface(protectedPlaceholder),
        mUseColorManagement(args.useColorManagement),
        mRenderEngineType(args.renderEngineType) {
        mUseColorManagement(args.useColorManagement) {
    sk_sp<const GrGLInterface> glInterface(GrGLCreateNativeInterface());
    LOG_ALWAYS_FATAL_IF(!glInterface.get());

+0 −4
Original line number Diff line number Diff line
@@ -130,10 +130,6 @@ private:
    bool mInProtectedContext = false;
    // Object to capture commands send to Skia.
    std::unique_ptr<SkiaCapture> mCapture;

    // Keep this information as a local variable to determine whether the access of the GL
    // operations is working on the same threads.
    const RenderEngineType mRenderEngineType = RenderEngineType::SKIA_GL;
};

} // namespace skia
Loading