Corrected drawingTransformMatrix

The transformMatrix needed to be calculated in prepareClientComposition
so storing it in BufferInfo was incorrect. Instead, allow the transformMatrix
to get calculated when prepareClientComposition but avoid using the consumer
for BufferQueueLayer.

Also combined getDrawingTransformMatrix and setFilteringEnabled since
setFilteringEnabled was only used to update the transformMatrix before getting
it. BufferQueueLayers no longer go through the consumer to get the
transformMatrix and just directly calculate the matrix using the GLUtils class.

Fixes: 140759442
Test: atest android.view.cts.ASurfaceControlTest
Change-Id: I09179de275bd905960fb366e45e36fb9874bc0b3
diff --git a/services/surfaceflinger/BufferStateLayer.cpp b/services/surfaceflinger/BufferStateLayer.cpp
index afbe228..509deaf 100644
--- a/services/surfaceflinger/BufferStateLayer.cpp
+++ b/services/surfaceflinger/BufferStateLayer.cpp
@@ -432,11 +432,6 @@
     return mCurrentStateModified && (c.buffer != nullptr || c.bgColorLayer != nullptr);
 }
 
-void BufferStateLayer::setFilteringEnabled(bool enabled) {
-    GLConsumer::computeTransformMatrix(mTransformMatrix.data(), mBufferInfo.mBuffer,
-                                       mBufferInfo.mCrop, mBufferInfo.mTransform, enabled);
-}
-
 status_t BufferStateLayer::bindTextureImage() {
     const State& s(getDrawingState());
     auto& engine(mFlinger->getRenderEngine());
@@ -545,10 +540,8 @@
         return;
     }
 
-    const State& s(getDrawingState());
-
-    compositionState.buffer = s.buffer;
-    compositionState.bufferSlot = mHwcSlotGenerator->getHwcCacheSlot(s.clientCacheId);
+    compositionState.buffer = mBufferInfo.mBuffer;
+    compositionState.bufferSlot = mBufferInfo.mBufferSlot;
     compositionState.acquireFence = mBufferInfo.mFence;
 
     mFrameNumber++;
@@ -641,8 +634,6 @@
     mBufferInfo.mDesiredPresentTime = s.desiredPresentTime;
     mBufferInfo.mFenceTime = std::make_shared<FenceTime>(s.acquireFence);
     mBufferInfo.mFence = s.acquireFence;
-    std::copy(std::begin(mTransformMatrix), std::end(mTransformMatrix),
-              mBufferInfo.mTransformMatrix);
     mBufferInfo.mTransform = s.transform;
     mBufferInfo.mDataspace = translateDataspace(s.dataspace);
     mBufferInfo.mCrop = computeCrop(s);
@@ -653,6 +644,7 @@
     mBufferInfo.mPixelFormat =
             !mBufferInfo.mBuffer ? PIXEL_FORMAT_NONE : mBufferInfo.mBuffer->format;
     mBufferInfo.mTransformToDisplayInverse = s.transformToDisplayInverse;
+    mBufferInfo.mBufferSlot = mHwcSlotGenerator->getHwcCacheSlot(s.clientCacheId);
 }
 
 Rect BufferStateLayer::computeCrop(const State& s) {