aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoman Stratiienko <roman.o.stratiienko@globallogic.com>2022-02-21 10:52:18 +0200
committerRoman Stratiienko <roman.o.stratiienko@globallogic.com>2022-05-17 10:35:29 +0300
commit1cbaaf9eeba7ba5421674ff5fb41174862b73866 (patch)
tree8893a7e1eb901ee99aad77307687b3dcf09523fa
parent8b926a5905c94541ec350981b55f0257ad317f75 (diff)
downloaddrm_hwcomposer-1cbaaf9eeba7ba5421674ff5fb41174862b73866.tar.gz
drm_hwcomposer: Move include/drmhwcgralloc.h to bufferinfo/BufferInfo.h
... to emphasize its purpose. - Rename struct HwcDrmBo -> struct BufferInfo - Remove unused BufferInfo::acquire_fence, BufferInfo::hal_format and BufferInfo::usage fields Signed-off-by: Roman Stratiienko <roman.o.stratiienko@globallogic.com>
-rw-r--r--bufferinfo/BufferInfo.h (renamed from include/drmhwcgralloc.h)29
-rw-r--r--bufferinfo/BufferInfoGetter.cpp3
-rw-r--r--bufferinfo/BufferInfoGetter.h4
-rw-r--r--bufferinfo/BufferInfoMapperMetadata.cpp24
-rw-r--r--bufferinfo/BufferInfoMapperMetadata.h4
-rw-r--r--bufferinfo/legacy/BufferInfoImagination.cpp4
-rw-r--r--bufferinfo/legacy/BufferInfoImagination.h2
-rw-r--r--bufferinfo/legacy/BufferInfoLibdrm.cpp16
-rw-r--r--bufferinfo/legacy/BufferInfoLibdrm.h5
-rw-r--r--bufferinfo/legacy/BufferInfoMaliHisi.cpp5
-rw-r--r--bufferinfo/legacy/BufferInfoMaliHisi.h2
-rw-r--r--bufferinfo/legacy/BufferInfoMaliMediatek.cpp4
-rw-r--r--bufferinfo/legacy/BufferInfoMaliMediatek.h2
-rw-r--r--bufferinfo/legacy/BufferInfoMaliMeson.cpp5
-rw-r--r--bufferinfo/legacy/BufferInfoMaliMeson.h2
-rw-r--r--bufferinfo/legacy/BufferInfoMinigbm.cpp5
-rw-r--r--bufferinfo/legacy/BufferInfoMinigbm.h2
-rw-r--r--drm/DrmFbImporter.cpp4
-rw-r--r--drm/DrmFbImporter.h8
-rw-r--r--hwc2_device/HwcDisplay.cpp2
-rw-r--r--include/drmhwcomposer.h10
-rw-r--r--utils/hwcutils.cpp2
22 files changed, 49 insertions, 95 deletions
diff --git a/include/drmhwcgralloc.h b/bufferinfo/BufferInfo.h
index 949912d..ab714cf 100644
--- a/include/drmhwcgralloc.h
+++ b/bufferinfo/BufferInfo.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2015 The Android Open Source Project
+ * Copyright (C) 2022 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,29 +14,20 @@
* limitations under the License.
*/
-#ifndef ANDROID_DRMHWCGRALLOC_H_
-#define ANDROID_DRMHWCGRALLOC_H_
+#pragma once
#include <cstdint>
-constexpr int kHwcDrmBoMaxPlanes = 4;
+constexpr int kBufferMaxPlanes = 4;
-struct HwcDrmBo {
+struct BufferInfo {
uint32_t width;
uint32_t height;
- uint32_t format; /* DRM_FORMAT_* from drm_fourcc.h */
- uint32_t hal_format; /* HAL_PIXEL_FORMAT_* */
- uint32_t usage;
- uint32_t pitches[kHwcDrmBoMaxPlanes];
- uint32_t offsets[kHwcDrmBoMaxPlanes];
+ uint32_t format; /* DRM_FORMAT_* from drm_fourcc.h */
+ uint32_t pitches[kBufferMaxPlanes];
+ uint32_t offsets[kBufferMaxPlanes];
/* sizes[] is used only by mapper@4 metadata getter for internal purposes */
- uint32_t sizes[kHwcDrmBoMaxPlanes];
- int prime_fds[kHwcDrmBoMaxPlanes];
- uint64_t modifiers[kHwcDrmBoMaxPlanes];
- int acquire_fence_fd;
+ uint32_t sizes[kBufferMaxPlanes];
+ int prime_fds[kBufferMaxPlanes];
+ uint64_t modifiers[kBufferMaxPlanes];
};
-
-// NOLINTNEXTLINE(readability-identifier-naming)
-using hwc_drm_bo_t = HwcDrmBo;
-
-#endif // ANDROID_DRMHWCGRALLOC_H_
diff --git a/bufferinfo/BufferInfoGetter.cpp b/bufferinfo/BufferInfoGetter.cpp
index 0cfd7e5..57dc7f1 100644
--- a/bufferinfo/BufferInfoGetter.cpp
+++ b/bufferinfo/BufferInfoGetter.cpp
@@ -49,8 +49,7 @@ BufferInfoGetter *BufferInfoGetter::GetInstance() {
}
bool BufferInfoGetter::IsHandleUsable(buffer_handle_t handle) {
- hwc_drm_bo_t bo;
- memset(&bo, 0, sizeof(hwc_drm_bo_t));
+ BufferInfo bo{};
if (ConvertBoInfo(handle, &bo) != 0) {
return false;
diff --git a/bufferinfo/BufferInfoGetter.h b/bufferinfo/BufferInfoGetter.h
index 59184a4..d86a5b4 100644
--- a/bufferinfo/BufferInfoGetter.h
+++ b/bufferinfo/BufferInfoGetter.h
@@ -20,8 +20,8 @@
#include <drm/drm_fourcc.h>
#include <hardware/gralloc.h>
+#include "BufferInfo.h"
#include "drm/DrmDevice.h"
-#include "drmhwcgralloc.h"
#ifndef DRM_FORMAT_INVALID
#define DRM_FORMAT_INVALID 0
@@ -33,7 +33,7 @@ class BufferInfoGetter {
public:
virtual ~BufferInfoGetter() = default;
- virtual int ConvertBoInfo(buffer_handle_t handle, hwc_drm_bo_t *bo) = 0;
+ virtual int ConvertBoInfo(buffer_handle_t handle, BufferInfo *bo) = 0;
bool IsHandleUsable(buffer_handle_t handle);
diff --git a/bufferinfo/BufferInfoMapperMetadata.cpp b/bufferinfo/BufferInfoMapperMetadata.cpp
index 2f08a76..70bd2da 100644
--- a/bufferinfo/BufferInfoMapperMetadata.cpp
+++ b/bufferinfo/BufferInfoMapperMetadata.cpp
@@ -46,7 +46,7 @@ BufferInfoGetter *BufferInfoMapperMetadata::CreateInstance() {
* so that it can be overridden.
*/
int __attribute__((weak))
-BufferInfoMapperMetadata::GetFds(buffer_handle_t handle, hwc_drm_bo_t *bo) {
+BufferInfoMapperMetadata::GetFds(buffer_handle_t handle, BufferInfo *bo) {
int fd_index = 0;
if (handle->numFds <= 0) {
@@ -54,7 +54,7 @@ BufferInfoMapperMetadata::GetFds(buffer_handle_t handle, hwc_drm_bo_t *bo) {
return android::BAD_VALUE;
}
- for (int i = 0; i < kHwcDrmBoMaxPlanes; i++) {
+ for (int i = 0; i < kBufferMaxPlanes; i++) {
/* If no size, we're out of usable planes */
if (bo->sizes[i] <= 0) {
if (i == 0) {
@@ -87,28 +87,12 @@ BufferInfoMapperMetadata::GetFds(buffer_handle_t handle, hwc_drm_bo_t *bo) {
}
int BufferInfoMapperMetadata::ConvertBoInfo(buffer_handle_t handle,
- hwc_drm_bo_t *bo) {
+ BufferInfo *bo) {
GraphicBufferMapper &mapper = GraphicBufferMapper::getInstance();
if (handle == nullptr)
return -EINVAL;
- uint64_t usage = 0;
- int err = mapper.getUsage(handle, &usage);
- if (err != 0) {
- ALOGE("Failed to get usage err=%d", err);
- return err;
- }
- bo->usage = static_cast<uint32_t>(usage);
-
- ui::PixelFormat hal_format;
- err = mapper.getPixelFormatRequested(handle, &hal_format);
- if (err != 0) {
- ALOGE("Failed to get HAL Pixel Format err=%d", err);
- return err;
- }
- bo->hal_format = static_cast<uint32_t>(hal_format);
-
- err = mapper.getPixelFormatFourCC(handle, &bo->format);
+ int err = mapper.getPixelFormatFourCC(handle, &bo->format);
if (err != 0) {
ALOGE("Failed to get FourCC format err=%d", err);
return err;
diff --git a/bufferinfo/BufferInfoMapperMetadata.h b/bufferinfo/BufferInfoMapperMetadata.h
index d335705..6ab29d3 100644
--- a/bufferinfo/BufferInfoMapperMetadata.h
+++ b/bufferinfo/BufferInfoMapperMetadata.h
@@ -25,9 +25,9 @@ class BufferInfoMapperMetadata : public BufferInfoGetter {
public:
using BufferInfoGetter::BufferInfoGetter;
- int ConvertBoInfo(buffer_handle_t handle, hwc_drm_bo_t *bo) override;
+ int ConvertBoInfo(buffer_handle_t handle, BufferInfo *bo) override;
- int GetFds(buffer_handle_t handle, hwc_drm_bo_t *bo);
+ int GetFds(buffer_handle_t handle, BufferInfo *bo);
static BufferInfoGetter *CreateInstance();
};
diff --git a/bufferinfo/legacy/BufferInfoImagination.cpp b/bufferinfo/legacy/BufferInfoImagination.cpp
index 691dd14..6823a74 100644
--- a/bufferinfo/legacy/BufferInfoImagination.cpp
+++ b/bufferinfo/legacy/BufferInfoImagination.cpp
@@ -30,7 +30,7 @@ namespace android {
LEGACY_BUFFER_INFO_GETTER(BufferInfoImagination);
int BufferInfoImagination::ConvertBoInfo(buffer_handle_t handle,
- hwc_drm_bo_t *bo) {
+ BufferInfo *bo) {
auto *hnd = (IMG_native_handle_t *)handle;
if (!hnd)
return -EINVAL;
@@ -43,10 +43,8 @@ int BufferInfoImagination::ConvertBoInfo(buffer_handle_t handle,
bo->width = hnd->iWidth;
bo->height = hnd->iHeight;
- bo->usage = hnd->usage;
bo->prime_fds[0] = hnd->fd[0];
bo->pitches[0] = ALIGN(hnd->iWidth, HW_ALIGN) * hnd->uiBpp >> 3;
- bo->hal_format = hnd->iFormat;
switch (hnd->iFormat) {
#ifdef HAL_PIXEL_FORMAT_BGRX_8888
diff --git a/bufferinfo/legacy/BufferInfoImagination.h b/bufferinfo/legacy/BufferInfoImagination.h
index 765b279..4066d11 100644
--- a/bufferinfo/legacy/BufferInfoImagination.h
+++ b/bufferinfo/legacy/BufferInfoImagination.h
@@ -27,7 +27,7 @@ class BufferInfoImagination : public LegacyBufferInfoGetter {
public:
using LegacyBufferInfoGetter::LegacyBufferInfoGetter;
- int ConvertBoInfo(buffer_handle_t handle, hwc_drm_bo_t *bo) override;
+ int ConvertBoInfo(buffer_handle_t handle, BufferInfo *bo) override;
};
} // namespace android
diff --git a/bufferinfo/legacy/BufferInfoLibdrm.cpp b/bufferinfo/legacy/BufferInfoLibdrm.cpp
index 6baf6bb..3bea3f2 100644
--- a/bufferinfo/legacy/BufferInfoLibdrm.cpp
+++ b/bufferinfo/legacy/BufferInfoLibdrm.cpp
@@ -91,8 +91,8 @@ static bool is_yuv(uint32_t native) {
return false;
}
-bool BufferInfoLibdrm::GetYuvPlaneInfo(int num_fds, buffer_handle_t handle,
- hwc_drm_bo_t *bo) {
+bool BufferInfoLibdrm::GetYuvPlaneInfo(uint32_t hal_format, int num_fds,
+ buffer_handle_t handle, BufferInfo *bo) {
struct android_ycbcr ycbcr {};
enum chroma_order chroma_order {};
int ret = 0;
@@ -136,12 +136,12 @@ bool BufferInfoLibdrm::GetYuvPlaneInfo(int num_fds, buffer_handle_t handle,
/* .chroma_step is the byte distance between the same chroma channel
* values of subsequent pixels, assumed to be the same for Cb and Cr. */
- bo->format = get_fourcc_yuv(bo->hal_format, chroma_order, ycbcr.chroma_step);
+ bo->format = get_fourcc_yuv(hal_format, chroma_order, ycbcr.chroma_step);
if (bo->format == UINT32_MAX) {
ALOGW(
"unsupported YUV format, native = %x, chroma_order = %s, chroma_step = "
"%d",
- bo->hal_format, chroma_order == kYCbCr ? "YCbCr" : "YCrCb",
+ hal_format, chroma_order == kYCbCr ? "YCbCr" : "YCrCb",
(int)ycbcr.chroma_step);
return false;
}
@@ -162,14 +162,13 @@ bool BufferInfoLibdrm::GetYuvPlaneInfo(int num_fds, buffer_handle_t handle,
return true;
}
-int BufferInfoLibdrm::ConvertBoInfo(buffer_handle_t handle, hwc_drm_bo_t *bo) {
+int BufferInfoLibdrm::ConvertBoInfo(buffer_handle_t handle, BufferInfo *bo) {
gralloc_handle_t *gr_handle = gralloc_handle(handle);
if (!gr_handle)
return -EINVAL;
bo->width = gr_handle->width;
bo->height = gr_handle->height;
- bo->hal_format = gr_handle->format;
#if GRALLOC_HANDLE_VERSION < 4
static std::once_flag once;
@@ -182,11 +181,10 @@ int BufferInfoLibdrm::ConvertBoInfo(buffer_handle_t handle, hwc_drm_bo_t *bo) {
bo->modifiers[0] = gr_handle->modifier;
#endif
- bo->usage = gr_handle->usage;
bo->prime_fds[0] = gr_handle->prime_fd;
if (is_yuv(gr_handle->format)) {
- if (!GetYuvPlaneInfo(handle->numFds, handle, bo))
+ if (!GetYuvPlaneInfo(gr_handle->format, handle->numFds, handle, bo))
return -EINVAL;
} else {
bo->pitches[0] = gr_handle->stride;
@@ -195,7 +193,7 @@ int BufferInfoLibdrm::ConvertBoInfo(buffer_handle_t handle, hwc_drm_bo_t *bo) {
/* FOSS graphic components (gbm_gralloc, mesa3d) are translating
* HAL_PIXEL_FORMAT_RGB_565 to DRM_FORMAT_RGB565 without swapping
* the R and B components. Same must be done here. */
- switch (bo->hal_format) {
+ switch (gr_handle->format) {
case HAL_PIXEL_FORMAT_RGB_565:
bo->format = DRM_FORMAT_RGB565;
break;
diff --git a/bufferinfo/legacy/BufferInfoLibdrm.h b/bufferinfo/legacy/BufferInfoLibdrm.h
index cad8add..17ee5fb 100644
--- a/bufferinfo/legacy/BufferInfoLibdrm.h
+++ b/bufferinfo/legacy/BufferInfoLibdrm.h
@@ -26,11 +26,12 @@ namespace android {
class BufferInfoLibdrm : public LegacyBufferInfoGetter {
public:
using LegacyBufferInfoGetter::LegacyBufferInfoGetter;
- int ConvertBoInfo(buffer_handle_t handle, hwc_drm_bo_t *bo) override;
+ int ConvertBoInfo(buffer_handle_t handle, BufferInfo *bo) override;
int ValidateGralloc() override;
private:
- bool GetYuvPlaneInfo(int num_fds, buffer_handle_t handle, hwc_drm_bo_t *bo);
+ bool GetYuvPlaneInfo(uint32_t hal_format, int num_fds, buffer_handle_t handle,
+ BufferInfo *bo);
};
} // namespace android
diff --git a/bufferinfo/legacy/BufferInfoMaliHisi.cpp b/bufferinfo/legacy/BufferInfoMaliHisi.cpp
index 5fc413a..7a75075 100644
--- a/bufferinfo/legacy/BufferInfoMaliHisi.cpp
+++ b/bufferinfo/legacy/BufferInfoMaliHisi.cpp
@@ -66,8 +66,7 @@ uint64_t BufferInfoMaliHisi::ConvertGrallocFormatToDrmModifiers(
}
#endif
-int BufferInfoMaliHisi::ConvertBoInfo(buffer_handle_t handle,
- hwc_drm_bo_t *bo) {
+int BufferInfoMaliHisi::ConvertBoInfo(buffer_handle_t handle, BufferInfo *bo) {
bool is_rgb = false;
const auto *hnd = (private_handle_t const *)handle;
@@ -87,9 +86,7 @@ int BufferInfoMaliHisi::ConvertBoInfo(buffer_handle_t handle,
bo->width = hnd->width;
bo->height = hnd->height;
- bo->hal_format = hnd->req_format;
bo->format = fmt;
- bo->usage = hnd->usage;
bo->pitches[0] = hnd->byte_stride;
bo->prime_fds[0] = hnd->share_fd;
bo->offsets[0] = 0;
diff --git a/bufferinfo/legacy/BufferInfoMaliHisi.h b/bufferinfo/legacy/BufferInfoMaliHisi.h
index 698a0d3..e809d06 100644
--- a/bufferinfo/legacy/BufferInfoMaliHisi.h
+++ b/bufferinfo/legacy/BufferInfoMaliHisi.h
@@ -27,7 +27,7 @@ class BufferInfoMaliHisi : public LegacyBufferInfoGetter {
public:
using LegacyBufferInfoGetter::LegacyBufferInfoGetter;
- int ConvertBoInfo(buffer_handle_t handle, hwc_drm_bo_t *bo) override;
+ int ConvertBoInfo(buffer_handle_t handle, BufferInfo *bo) override;
private:
uint64_t ConvertGrallocFormatToDrmModifiers(uint64_t flags, bool is_rgb);
diff --git a/bufferinfo/legacy/BufferInfoMaliMediatek.cpp b/bufferinfo/legacy/BufferInfoMaliMediatek.cpp
index 7e6f3a8..569148b 100644
--- a/bufferinfo/legacy/BufferInfoMaliMediatek.cpp
+++ b/bufferinfo/legacy/BufferInfoMaliMediatek.cpp
@@ -33,7 +33,7 @@ namespace android {
LEGACY_BUFFER_INFO_GETTER(BufferInfoMaliMediatek);
int BufferInfoMaliMediatek::ConvertBoInfo(buffer_handle_t handle,
- hwc_drm_bo_t *bo) {
+ BufferInfo *bo) {
const auto *hnd = (private_handle_t const *)handle;
if (!hnd)
return -EINVAL;
@@ -44,9 +44,7 @@ int BufferInfoMaliMediatek::ConvertBoInfo(buffer_handle_t handle,
bo->width = hnd->width;
bo->height = hnd->height;
- bo->hal_format = hnd->req_format;
bo->format = fmt;
- bo->usage = hnd->consumer_usage | hnd->producer_usage;
bo->prime_fds[0] = hnd->share_fd;
bo->pitches[0] = hnd->byte_stride;
bo->offsets[0] = 0;
diff --git a/bufferinfo/legacy/BufferInfoMaliMediatek.h b/bufferinfo/legacy/BufferInfoMaliMediatek.h
index 1204818..5b48019 100644
--- a/bufferinfo/legacy/BufferInfoMaliMediatek.h
+++ b/bufferinfo/legacy/BufferInfoMaliMediatek.h
@@ -27,7 +27,7 @@ class BufferInfoMaliMediatek : public LegacyBufferInfoGetter {
public:
using LegacyBufferInfoGetter::LegacyBufferInfoGetter;
- int ConvertBoInfo(buffer_handle_t handle, hwc_drm_bo_t *bo) override;
+ int ConvertBoInfo(buffer_handle_t handle, BufferInfo *bo) override;
};
} // namespace android
diff --git a/bufferinfo/legacy/BufferInfoMaliMeson.cpp b/bufferinfo/legacy/BufferInfoMaliMeson.cpp
index 9daf542..08f7717 100644
--- a/bufferinfo/legacy/BufferInfoMaliMeson.cpp
+++ b/bufferinfo/legacy/BufferInfoMaliMeson.cpp
@@ -61,8 +61,7 @@ uint64_t BufferInfoMaliMeson::ConvertGrallocFormatToDrmModifiers(
}
#endif
-int BufferInfoMaliMeson::ConvertBoInfo(buffer_handle_t handle,
- hwc_drm_bo_t *bo) {
+int BufferInfoMaliMeson::ConvertBoInfo(buffer_handle_t handle, BufferInfo *bo) {
const auto *hnd = (private_handle_t const *)handle;
if (!hnd)
return -EINVAL;
@@ -79,9 +78,7 @@ int BufferInfoMaliMeson::ConvertBoInfo(buffer_handle_t handle,
bo->width = hnd->width;
bo->height = hnd->height;
- bo->hal_format = hnd->req_format;
bo->format = fmt;
- bo->usage = hnd->usage;
bo->prime_fds[0] = hnd->share_fd;
bo->pitches[0] = hnd->byte_stride;
bo->offsets[0] = 0;
diff --git a/bufferinfo/legacy/BufferInfoMaliMeson.h b/bufferinfo/legacy/BufferInfoMaliMeson.h
index ce5d3f9..3bd126d 100644
--- a/bufferinfo/legacy/BufferInfoMaliMeson.h
+++ b/bufferinfo/legacy/BufferInfoMaliMeson.h
@@ -26,7 +26,7 @@ namespace android {
class BufferInfoMaliMeson : public LegacyBufferInfoGetter {
public:
using LegacyBufferInfoGetter::LegacyBufferInfoGetter;
- int ConvertBoInfo(buffer_handle_t handle, hwc_drm_bo_t *bo) override;
+ int ConvertBoInfo(buffer_handle_t handle, BufferInfo *bo) override;
private:
uint64_t ConvertGrallocFormatToDrmModifiers(uint64_t flags);
diff --git a/bufferinfo/legacy/BufferInfoMinigbm.cpp b/bufferinfo/legacy/BufferInfoMinigbm.cpp
index 777c2b7..60795b1 100644
--- a/bufferinfo/legacy/BufferInfoMinigbm.cpp
+++ b/bufferinfo/legacy/BufferInfoMinigbm.cpp
@@ -43,7 +43,7 @@ struct cros_gralloc0_buffer_info {
int stride[4];
};
-int BufferInfoMinigbm::ConvertBoInfo(buffer_handle_t handle, hwc_drm_bo_t *bo) {
+int BufferInfoMinigbm::ConvertBoInfo(buffer_handle_t handle, BufferInfo *bo) {
if (handle == nullptr) {
return -EINVAL;
}
@@ -88,10 +88,7 @@ int BufferInfoMinigbm::ConvertBoInfo(buffer_handle_t handle, hwc_drm_bo_t *bo) {
bo->width = width;
bo->height = height;
- bo->hal_format = droid_format;
-
bo->format = info.drm_fourcc;
- bo->usage = usage;
for (int i = 0; i < info.num_fds; i++) {
bo->modifiers[i] = info.modifier;
diff --git a/bufferinfo/legacy/BufferInfoMinigbm.h b/bufferinfo/legacy/BufferInfoMinigbm.h
index 04cc2ae..16cbf2c 100644
--- a/bufferinfo/legacy/BufferInfoMinigbm.h
+++ b/bufferinfo/legacy/BufferInfoMinigbm.h
@@ -26,7 +26,7 @@ namespace android {
class BufferInfoMinigbm : public LegacyBufferInfoGetter {
public:
using LegacyBufferInfoGetter::LegacyBufferInfoGetter;
- int ConvertBoInfo(buffer_handle_t handle, hwc_drm_bo_t *bo) override;
+ int ConvertBoInfo(buffer_handle_t handle, BufferInfo *bo) override;
int ValidateGralloc() override;
};
diff --git a/drm/DrmFbImporter.cpp b/drm/DrmFbImporter.cpp
index f82d674..585b789 100644
--- a/drm/DrmFbImporter.cpp
+++ b/drm/DrmFbImporter.cpp
@@ -34,7 +34,7 @@
namespace android {
-auto DrmFbIdHandle::CreateInstance(hwc_drm_bo_t *bo, GemHandle first_gem_handle,
+auto DrmFbIdHandle::CreateInstance(BufferInfo *bo, GemHandle first_gem_handle,
DrmDevice &drm)
-> std::shared_ptr<DrmFbIdHandle> {
ATRACE_NAME("Import dmabufs and register FB");
@@ -123,7 +123,7 @@ DrmFbIdHandle::~DrmFbIdHandle() {
}
}
-auto DrmFbImporter::GetOrCreateFbId(hwc_drm_bo_t *bo)
+auto DrmFbImporter::GetOrCreateFbId(BufferInfo *bo)
-> std::shared_ptr<DrmFbIdHandle> {
/* Lookup DrmFbIdHandle in cache first. First handle serves as a cache key. */
GemHandle first_handle = 0;
diff --git a/drm/DrmFbImporter.h b/drm/DrmFbImporter.h
index 7f17bbe..9e94238 100644
--- a/drm/DrmFbImporter.h
+++ b/drm/DrmFbImporter.h
@@ -23,8 +23,8 @@
#include <array>
#include <map>
+#include "bufferinfo/BufferInfo.h"
#include "drm/DrmDevice.h"
-#include "drmhwcgralloc.h"
#ifndef DRM_FORMAT_INVALID
#define DRM_FORMAT_INVALID 0
@@ -36,7 +36,7 @@ namespace android {
class DrmFbIdHandle {
public:
- static auto CreateInstance(hwc_drm_bo_t *bo, GemHandle first_gem_handle,
+ static auto CreateInstance(BufferInfo *bo, GemHandle first_gem_handle,
DrmDevice &drm) -> std::shared_ptr<DrmFbIdHandle>;
~DrmFbIdHandle();
@@ -55,7 +55,7 @@ class DrmFbIdHandle {
DrmDevice *const drm_;
uint32_t fb_id_{};
- std::array<GemHandle, kHwcDrmBoMaxPlanes> gem_handles_{};
+ std::array<GemHandle, kBufferMaxPlanes> gem_handles_{};
};
class DrmFbImporter {
@@ -67,7 +67,7 @@ class DrmFbImporter {
auto operator=(const DrmFbImporter &) = delete;
auto operator=(DrmFbImporter &&) = delete;
- auto GetOrCreateFbId(hwc_drm_bo_t *bo) -> std::shared_ptr<DrmFbIdHandle>;
+ auto GetOrCreateFbId(BufferInfo *bo) -> std::shared_ptr<DrmFbIdHandle>;
private:
void CleanupEmptyCacheElements() {
diff --git a/hwc2_device/HwcDisplay.cpp b/hwc2_device/HwcDisplay.cpp
index d94c9bc..2aec440 100644
--- a/hwc2_device/HwcDisplay.cpp
+++ b/hwc2_device/HwcDisplay.cpp
@@ -598,7 +598,7 @@ HWC2::Error HwcDisplay::SetClientTarget(buffer_handle_t target,
/* TODO: Do not update source_crop every call.
* It makes sense to do it once after every hotplug event. */
- HwcDrmBo bo{};
+ BufferInfo bo{};
BufferInfoGetter::GetInstance()->ConvertBoInfo(target, &bo);
hwc_frect_t source_crop = {.left = 0.0F,
diff --git a/include/drmhwcomposer.h b/include/drmhwcomposer.h
index 4fb0efd..211ffd2 100644
--- a/include/drmhwcomposer.h
+++ b/include/drmhwcomposer.h
@@ -24,8 +24,8 @@
#include <cstdint>
#include <vector>
+#include "bufferinfo/BufferInfo.h"
#include "drm/DrmFbImporter.h"
-#include "drmhwcgralloc.h"
#include "utils/UniqueFd.h"
namespace android {
@@ -62,10 +62,9 @@ enum class DrmHwcBlending : int32_t {
struct DrmHwcLayer {
buffer_handle_t sf_handle = nullptr;
- hwc_drm_bo_t buffer_info{};
+ BufferInfo buffer_info{};
std::shared_ptr<DrmFbIdHandle> fb_id_handle;
- int gralloc_buffer_usage = 0;
DrmHwcTransform transform{};
DrmHwcBlending blending = DrmHwcBlending::kNone;
uint16_t alpha = UINT16_MAX;
@@ -77,11 +76,6 @@ struct DrmHwcLayer {
UniqueFd acquire_fence;
int ImportBuffer(DrmDevice *drm_device);
-
- bool IsProtected() const {
- return (gralloc_buffer_usage & GRALLOC_USAGE_PROTECTED) ==
- GRALLOC_USAGE_PROTECTED;
- }
};
} // namespace android
diff --git a/utils/hwcutils.cpp b/utils/hwcutils.cpp
index c537b99..aec9bba 100644
--- a/utils/hwcutils.cpp
+++ b/utils/hwcutils.cpp
@@ -28,7 +28,7 @@
namespace android {
int DrmHwcLayer::ImportBuffer(DrmDevice *drm_device) {
- buffer_info = hwc_drm_bo_t{};
+ buffer_info = BufferInfo{};
int ret = BufferInfoGetter::GetInstance()->ConvertBoInfo(sf_handle,
&buffer_info);