aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLingfeng Yang <lfy@google.com>2021-08-06 21:08:10 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2021-08-06 21:08:10 +0000
commit232f3b873e765194a7973a6ff187a9352baa6deb (patch)
treee4bede5f33e110d33192b2842182c61fb1768e8b
parent2a2254da2bdfd7d00995851ea3da4241df5fe708 (diff)
parent4494e762319a6156cf427a20c8b38f66d5be886a (diff)
downloadgoldfish-opengl-232f3b873e765194a7973a6ff187a9352baa6deb.tar.gz
In mapper, use rcReadColorBufferDMA if available am: 4494e76231
Original change: https://googleplex-android-review.googlesource.com/c/device/generic/goldfish-opengl/+/15474867 Change-Id: Id59bcfd21143701663e10d3822d12d9ee692c1a7
-rw-r--r--system/hals/mapper3.cpp23
1 files changed, 18 insertions, 5 deletions
diff --git a/system/hals/mapper3.cpp b/system/hals/mapper3.cpp
index 0788a0a6..570ae5ea 100644
--- a/system/hals/mapper3.cpp
+++ b/system/hals/mapper3.cpp
@@ -449,11 +449,24 @@ private: // **** impl ****
}
}
} else {
- rcEnc->rcReadColorBuffer(rcEnc,
- cb.hostHandle,
- 0, 0, cb.width, cb.height,
- cb.glFormat, cb.glType,
- bufferBits);
+ if (rcEnc->featureInfo()->hasReadColorBufferDma) {
+ {
+ AEMU_SCOPED_TRACE("bindDmaDirectly");
+ rcEnc->bindDmaDirectly(bufferBits,
+ getMmapedPhysAddr(cb.getMmapedOffset()));
+ }
+ rcEnc->rcReadColorBufferDMA(rcEnc,
+ cb.hostHandle,
+ 0, 0, cb.width, cb.height,
+ cb.glFormat, cb.glType,
+ bufferBits, cb.width * cb.height * cb.bytesPerPixel);
+ } else {
+ rcEnc->rcReadColorBuffer(rcEnc,
+ cb.hostHandle,
+ 0, 0, cb.width, cb.height,
+ cb.glFormat, cb.glType,
+ bufferBits);
+ }
}
}