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.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/services/surfaceflinger/BufferQueueLayer.cpp b/services/surfaceflinger/BufferQueueLayer.cpp
index 6e4235e409..87be9a821d 100644
--- a/services/surfaceflinger/BufferQueueLayer.cpp
+++ b/services/surfaceflinger/BufferQueueLayer.cpp
@@ -24,6 +24,7 @@
#include "BufferQueueLayer.h"
#include <compositionengine/LayerFECompositionState.h>
+#include <compositionengine/FodExtension.h>
#include <gui/BufferQueueConsumer.h>
#include <system/window.h>
@@ -514,9 +515,17 @@ status_t BufferQueueLayer::setDefaultBufferProperties(uint32_t w, uint32_t h, Pi
return BAD_VALUE;
}
+ uint64_t usageBits = getEffectiveUsage(0);
+
+ if (mName == FOD_LAYER_NAME) {
+ usageBits = getFodUsageBits(usageBits, false);
+ } else if (mName == FOD_TOUCHED_LAYER_NAME) {
+ usageBits = getFodUsageBits(usageBits, true);
+ }
+
setDefaultBufferSize(w, h);
mConsumer->setDefaultBufferFormat(format);
- mConsumer->setConsumerUsageBits(getEffectiveUsage(0));
+ mConsumer->setConsumerUsageBits(usageBits);
return NO_ERROR;
}