From ddb9cc9cffceea1e99a27b1300734ea8ef1f97e7 Mon Sep 17 00:00:00 2001 From: Ady Abraham Date: Wed, 22 Apr 2020 19:47:07 -0700 Subject: SurfaceFlinger: fix buffer usage bits of RefreshRateOverlay Set the correct gralloc bits on the buffer, and clear it before drawing the numbers. Bug: 154773593 Test: Enable refresh rate overlay on emulation Change-Id: I977507a80955fadeae7ad7504d5a4dfef5d0a693 --- services/surfaceflinger/RefreshRateOverlay.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'services/surfaceflinger/RefreshRateOverlay.cpp') diff --git a/services/surfaceflinger/RefreshRateOverlay.cpp b/services/surfaceflinger/RefreshRateOverlay.cpp index 0a0f2f132e..2e7fbc1a78 100644 --- a/services/surfaceflinger/RefreshRateOverlay.cpp +++ b/services/surfaceflinger/RefreshRateOverlay.cpp @@ -116,9 +116,13 @@ sp RefreshRateOverlay::SevenSegmentDrawer::drawNumber(int number, sp buffer = new GraphicBuffer(BUFFER_WIDTH, BUFFER_HEIGHT, HAL_PIXEL_FORMAT_RGBA_8888, 1, - GRALLOC_USAGE_SW_WRITE_RARELY, "RefreshRateOverlayBuffer"); + GRALLOC_USAGE_SW_WRITE_RARELY | GRALLOC_USAGE_HW_COMPOSER | + GRALLOC_USAGE_HW_TEXTURE, + "RefreshRateOverlayBuffer"); uint8_t* pixels; buffer->lock(GRALLOC_USAGE_SW_WRITE_RARELY, reinterpret_cast(&pixels)); + // Clear buffer content + drawRect(Rect(BUFFER_WIDTH, BUFFER_HEIGHT), half4(0), buffer, pixels); int left = 0; if (hundreds != 0) { drawDigit(hundreds, left, color, buffer, pixels); -- cgit v1.2.3-59-g8ed1b