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

Commit 2b844039 authored by Sally Qi's avatar Sally Qi
Browse files

Fix green line issue when playing 1080p HDR video on Youtube.

Relnote: We should also take the filtering of the inverse of the layer transform into consideration.

Bug: 293552208
Change-Id: I776445a9e0466c200b59a0f466c799d57573bcd9
Merged-In: I776445a9e0466c200b59a0f466c799d57573bcd9
Test: play with youtube
(cherry picked from commit 380ac3eb)
parent d5c3a129
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -249,10 +249,13 @@ void LayerFE::prepareBufferStateClientComposition(
    layerSettings.frameNumber = mSnapshot->frameNumber;
    layerSettings.bufferId = mSnapshot->externalTexture->getId();

    const bool useFiltering = targetSettings.needsFiltering ||
                              mSnapshot->geomLayerTransform.needsBilinearFiltering();

    // Query the texture matrix given our current filtering mode.
    float textureMatrix[16];
    getDrawingTransformMatrix(layerSettings.source.buffer.buffer, mSnapshot->geomContentCrop,
                              mSnapshot->geomBufferTransform, targetSettings.needsFiltering,
                              mSnapshot->geomBufferTransform, useFiltering,
                              textureMatrix);

    if (mSnapshot->geomBufferUsesDisplayInverseTransform) {
@@ -303,7 +306,7 @@ void LayerFE::prepareBufferStateClientComposition(
            mat4::translate(vec4(translateX, translateY, 0.f, 1.f)) *
            mat4::scale(vec4(scaleWidth, scaleHeight, 1.0f, 1.0f));

    layerSettings.source.buffer.useTextureFiltering = targetSettings.needsFiltering;
    layerSettings.source.buffer.useTextureFiltering = useFiltering;
    layerSettings.source.buffer.textureTransform =
            mat4(static_cast<const float*>(textureMatrix)) * tr;