surfaceflinger: skip buffer cache when BYPASS_IHWC

When SF talks to hwcomposer2 directly, we should skip HWC buffer
cache.  The cache works somehow similar to
IGraphicBufferConsumer::acquireBuffer, where buffer is set to
nullptr when it is already seen previously.  That confuses
hwcomposer2.

Bug: 35325794
Test: manual
Change-Id: I5306ecc9e7290bc6734091a9884024bf38667628
diff --git a/services/surfaceflinger/DisplayHardware/HWComposer.cpp b/services/surfaceflinger/DisplayHardware/HWComposer.cpp
index d2b26c2..4a281d4 100644
--- a/services/surfaceflinger/DisplayHardware/HWComposer.cpp
+++ b/services/surfaceflinger/DisplayHardware/HWComposer.cpp
@@ -914,6 +914,10 @@
         const sp<GraphicBuffer>& buffer,
         uint32_t* outSlot, sp<GraphicBuffer>* outBuffer)
 {
+#ifdef BYPASS_IHWC
+    *outSlot = slot;
+    *outBuffer = buffer;
+#else
     if (slot == BufferQueue::INVALID_BUFFER_SLOT || slot < 0) {
         // default to slot 0
         slot = 0;
@@ -934,6 +938,7 @@
         // update cache
         mBuffers[slot] = buffer;
     }
+#endif
 }
 
 // ---------------------------------------------------------------------------