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

Commit 71569130 authored by Chris Craik's avatar Chris Craik Committed by android-build-merger
Browse files

Merge \"Fix framebuffer incomplete errors\" into nyc-dev

am: 4bcf6603

Change-Id: I478d99bc0b1f1f10fef38505282711e95b7f5a09
parents ae903e10 4bcf6603
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -255,6 +255,7 @@ LOCAL_SRC_FILES += \
    tests/unit/MatrixTests.cpp \
    tests/unit/OffscreenBufferPoolTests.cpp \
    tests/unit/RenderNodeTests.cpp \
    tests/unit/RenderPropertiesTests.cpp \
    tests/unit/SkiaBehaviorTests.cpp \
    tests/unit/SnapshotTests.cpp \
    tests/unit/StringUtilsTests.cpp \
+7 −2
Original line number Diff line number Diff line
@@ -66,8 +66,13 @@ void BakedOpRenderer::startRepaintLayer(OffscreenBuffer* offscreenBuffer, const
            offscreenBuffer->texture.id(), 0);
    GL_CHECKPOINT(LOW);

    LOG_ALWAYS_FATAL_IF(glCheckFramebufferStatus(GL_FRAMEBUFFER) != GL_FRAMEBUFFER_COMPLETE,
            "framebuffer incomplete!");
    int status = glCheckFramebufferStatus(GL_FRAMEBUFFER);
    LOG_ALWAYS_FATAL_IF(status != GL_FRAMEBUFFER_COMPLETE,
            "framebuffer incomplete, status %d, textureId %d, size %dx%d",
            status,
            offscreenBuffer->texture.id(),
            offscreenBuffer->texture.width(),
            offscreenBuffer->texture.height());

    // Change the viewport & ortho projection
    setViewport(offscreenBuffer->viewportWidth, offscreenBuffer->viewportHeight);
+3 −1
Original line number Diff line number Diff line
@@ -86,7 +86,9 @@ void FrameBuilder::deferLayers(const LayerUpdateQueue& layers) {
            ATRACE_FORMAT("Optimize HW Layer DisplayList %s %ux%u",
                    layerNode->getName(), layerNode->getWidth(), layerNode->getHeight());

            const Rect& layerDamage = layers.entries()[i].damage;
            Rect layerDamage = layers.entries()[i].damage;
            // TODO: ensure layer damage can't be larger than layer
            layerDamage.doIntersect(0, 0, layer->viewportWidth, layer->viewportHeight);
            layerNode->computeOrdering();

            // map current light center into RenderNode's coordinate space
+2 −0
Original line number Diff line number Diff line
@@ -319,6 +319,8 @@ void RenderNode::pushLayerUpdate(TreeInfo& info) {
        transformUpdateNeeded = true;
    } else if (!layerMatchesWidthAndHeight(mLayer, getWidth(), getHeight())) {
#if HWUI_NEW_OPS
        // TODO: remove now irrelevant, currently enqueued damage (respecting damage ordering)
        // Or, ideally, maintain damage between frames on node/layer so ordering is always correct
        RenderState& renderState = mLayer->renderState;
        if (properties().fitsOnLayer()) {
            mLayer = renderState.layerPool().resize(mLayer, getWidth(), getHeight());
+3 −1
Original line number Diff line number Diff line
@@ -611,7 +611,9 @@ public:
    bool fitsOnLayer() const {
        const DeviceInfo* deviceInfo = DeviceInfo::get();
        return mPrimitiveFields.mWidth <= deviceInfo->maxTextureSize()
                        && mPrimitiveFields.mHeight <= deviceInfo->maxTextureSize();
                        && mPrimitiveFields.mHeight <= deviceInfo->maxTextureSize()
                        && mPrimitiveFields.mWidth > 0
                        && mPrimitiveFields.mHeight > 0;
    }

    bool promotedToLayer() const {
Loading