Loading libs/binder/Android.bp +1 −0 Original line number Diff line number Diff line Loading @@ -214,6 +214,7 @@ cc_library { "-misc-redundant-expression", "-misc-unused-using-decls", "performance*", "-performance-no-int-to-ptr", "portability*", ], Loading libs/renderengine/RenderEngine.cpp +10 −0 Original line number Diff line number Diff line Loading @@ -85,5 +85,15 @@ std::unique_ptr<RenderEngine> RenderEngine::create(const RenderEngineCreationArg RenderEngine::~RenderEngine() = default; void RenderEngine::validateInputBufferUsage(const sp<GraphicBuffer>& buffer) { LOG_ALWAYS_FATAL_IF(!(buffer->getUsage() & GraphicBuffer::USAGE_HW_TEXTURE), "input buffer not gpu readable"); } void RenderEngine::validateOutputBufferUsage(const sp<GraphicBuffer>& buffer) { LOG_ALWAYS_FATAL_IF(!(buffer->getUsage() & GraphicBuffer::USAGE_HW_RENDER), "output buffer not gpu writeable"); } } // namespace renderengine } // namespace android libs/renderengine/gl/GLESRenderEngine.cpp +3 −0 Original line number Diff line number Diff line Loading @@ -1125,6 +1125,8 @@ status_t GLESRenderEngine::drawLayers(const DisplaySettings& display, return BAD_VALUE; } validateOutputBufferUsage(buffer); std::unique_ptr<BindNativeBufferAsFramebuffer> fbo; // Gathering layers that requested blur, we'll need them to decide when to render to an // offscreen buffer, and when to render to the native buffer. Loading Loading @@ -1249,6 +1251,7 @@ status_t GLESRenderEngine::drawLayers(const DisplaySettings& display, isOpaque = layer->source.buffer.isOpaque; sp<GraphicBuffer> gBuf = layer->source.buffer.buffer; validateInputBufferUsage(gBuf); bindExternalTextureBuffer(layer->source.buffer.textureName, gBuf, layer->source.buffer.fence); Loading libs/renderengine/include/renderengine/RenderEngine.h +3 −0 Original line number Diff line number Diff line Loading @@ -201,6 +201,9 @@ public: // we should not allow in general, so remove this. RenderEngineType getRenderEngineType() const { return mRenderEngineType; } static void validateInputBufferUsage(const sp<GraphicBuffer>&); static void validateOutputBufferUsage(const sp<GraphicBuffer>&); protected: friend class threaded::RenderEngineThreaded; const RenderEngineType mRenderEngineType; Loading libs/renderengine/skia/SkiaGLRenderEngine.cpp +3 −0 Original line number Diff line number Diff line Loading @@ -598,6 +598,8 @@ status_t SkiaGLRenderEngine::drawLayers(const DisplaySettings& display, return BAD_VALUE; } validateOutputBufferUsage(buffer); auto grContext = mInProtectedContext ? mProtectedGrContext : mGrContext; auto& cache = mInProtectedContext ? mProtectedTextureCache : mTextureCache; AHardwareBuffer_Desc bufferDesc; Loading Loading @@ -815,6 +817,7 @@ status_t SkiaGLRenderEngine::drawLayers(const DisplaySettings& display, SkPaint paint; if (layer->source.buffer.buffer) { ATRACE_NAME("DrawImage"); validateInputBufferUsage(layer->source.buffer.buffer); const auto& item = layer->source.buffer; std::shared_ptr<AutoBackendTexture::LocalRef> imageTextureRef = nullptr; auto iter = mTextureCache.find(item.buffer->getId()); Loading Loading
libs/binder/Android.bp +1 −0 Original line number Diff line number Diff line Loading @@ -214,6 +214,7 @@ cc_library { "-misc-redundant-expression", "-misc-unused-using-decls", "performance*", "-performance-no-int-to-ptr", "portability*", ], Loading
libs/renderengine/RenderEngine.cpp +10 −0 Original line number Diff line number Diff line Loading @@ -85,5 +85,15 @@ std::unique_ptr<RenderEngine> RenderEngine::create(const RenderEngineCreationArg RenderEngine::~RenderEngine() = default; void RenderEngine::validateInputBufferUsage(const sp<GraphicBuffer>& buffer) { LOG_ALWAYS_FATAL_IF(!(buffer->getUsage() & GraphicBuffer::USAGE_HW_TEXTURE), "input buffer not gpu readable"); } void RenderEngine::validateOutputBufferUsage(const sp<GraphicBuffer>& buffer) { LOG_ALWAYS_FATAL_IF(!(buffer->getUsage() & GraphicBuffer::USAGE_HW_RENDER), "output buffer not gpu writeable"); } } // namespace renderengine } // namespace android
libs/renderengine/gl/GLESRenderEngine.cpp +3 −0 Original line number Diff line number Diff line Loading @@ -1125,6 +1125,8 @@ status_t GLESRenderEngine::drawLayers(const DisplaySettings& display, return BAD_VALUE; } validateOutputBufferUsage(buffer); std::unique_ptr<BindNativeBufferAsFramebuffer> fbo; // Gathering layers that requested blur, we'll need them to decide when to render to an // offscreen buffer, and when to render to the native buffer. Loading Loading @@ -1249,6 +1251,7 @@ status_t GLESRenderEngine::drawLayers(const DisplaySettings& display, isOpaque = layer->source.buffer.isOpaque; sp<GraphicBuffer> gBuf = layer->source.buffer.buffer; validateInputBufferUsage(gBuf); bindExternalTextureBuffer(layer->source.buffer.textureName, gBuf, layer->source.buffer.fence); Loading
libs/renderengine/include/renderengine/RenderEngine.h +3 −0 Original line number Diff line number Diff line Loading @@ -201,6 +201,9 @@ public: // we should not allow in general, so remove this. RenderEngineType getRenderEngineType() const { return mRenderEngineType; } static void validateInputBufferUsage(const sp<GraphicBuffer>&); static void validateOutputBufferUsage(const sp<GraphicBuffer>&); protected: friend class threaded::RenderEngineThreaded; const RenderEngineType mRenderEngineType; Loading
libs/renderengine/skia/SkiaGLRenderEngine.cpp +3 −0 Original line number Diff line number Diff line Loading @@ -598,6 +598,8 @@ status_t SkiaGLRenderEngine::drawLayers(const DisplaySettings& display, return BAD_VALUE; } validateOutputBufferUsage(buffer); auto grContext = mInProtectedContext ? mProtectedGrContext : mGrContext; auto& cache = mInProtectedContext ? mProtectedTextureCache : mTextureCache; AHardwareBuffer_Desc bufferDesc; Loading Loading @@ -815,6 +817,7 @@ status_t SkiaGLRenderEngine::drawLayers(const DisplaySettings& display, SkPaint paint; if (layer->source.buffer.buffer) { ATRACE_NAME("DrawImage"); validateInputBufferUsage(layer->source.buffer.buffer); const auto& item = layer->source.buffer; std::shared_ptr<AutoBackendTexture::LocalRef> imageTextureRef = nullptr; auto iter = mTextureCache.find(item.buffer->getId()); Loading