summaryrefslogtreecommitdiff
path: root/services/surfaceflinger/BufferQueueLayer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'services/surfaceflinger/BufferQueueLayer.cpp')
-rw-r--r--services/surfaceflinger/BufferQueueLayer.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/services/surfaceflinger/BufferQueueLayer.cpp b/services/surfaceflinger/BufferQueueLayer.cpp
index 795ea959d3..9327438827 100644
--- a/services/surfaceflinger/BufferQueueLayer.cpp
+++ b/services/surfaceflinger/BufferQueueLayer.cpp
@@ -25,6 +25,7 @@
#include "BufferQueueLayer.h"
#include <compositionengine/LayerFECompositionState.h>
+#include <compositionengine/UdfpsExtension.h>
#include <gui/BufferQueueConsumer.h>
#include <system/window.h>
@@ -525,10 +526,17 @@ status_t BufferQueueLayer::setDefaultBufferProperties(uint32_t w, uint32_t h, Pi
ALOGE("dimensions too large %u x %u", uint32_t(w), uint32_t(h));
return BAD_VALUE;
}
+ uint64_t usageBits = getEffectiveUsage(0);
+
+ if (mName == UDFPS_LAYER_NAME || mName == UDFPS_BIOMETRIC_PROMPT_LAYER_NAME) {
+ usageBits = getUdfpsUsageBits(usageBits, false);
+ } else if (mName == UDFPS_TOUCHED_LAYER_NAME) {
+ usageBits = getUdfpsUsageBits(usageBits, true);
+ }
setDefaultBufferSize(w, h);
mConsumer->setDefaultBufferFormat(format);
- mConsumer->setConsumerUsageBits(getEffectiveUsage(0));
+ mConsumer->setConsumerUsageBits(usageBits);
return NO_ERROR;
}