diff options
Diffstat (limited to 'gralloc4/src/hidl_common/MapperMetadata.cpp')
-rw-r--r-- | gralloc4/src/hidl_common/MapperMetadata.cpp | 16 |
1 files changed, 5 insertions, 11 deletions
diff --git a/gralloc4/src/hidl_common/MapperMetadata.cpp b/gralloc4/src/hidl_common/MapperMetadata.cpp index fb79930..cb0a820 100644 --- a/gralloc4/src/hidl_common/MapperMetadata.cpp +++ b/gralloc4/src/hidl_common/MapperMetadata.cpp @@ -286,8 +286,7 @@ static std::vector<std::vector<PlaneLayoutComponent>> plane_layout_components_fr static android::status_t get_plane_layouts(const private_handle_t *handle, std::vector<PlaneLayout> *layouts) { const int num_planes = get_num_planes(handle); - uint32_t base_format = handle->alloc_format & MALI_GRALLOC_INTFMT_FMT_MASK; - int32_t format_index = get_format_index(base_format); + int32_t format_index = get_format_index(handle->alloc_format & MALI_GRALLOC_INTFMT_FMT_MASK); if (format_index < 0) { MALI_GRALLOC_LOGE("Negative format index in get_plane_layouts"); @@ -305,15 +304,10 @@ static android::status_t get_plane_layouts(const private_handle_t *handle, std:: int64_t sample_increment_in_bits = format_info.bpp[plane_index]; int64_t offset = handle->plane_info[plane_index].offset; - static bool warn_multifd = true; - if (warn_multifd) { - uint8_t fd_count = get_exynos_fd_count(base_format); - if (fd_count != 1) { - warn_multifd = false; - MALI_GRALLOC_LOGW("Offsets in plane layouts of multi-fd format (%s %" PRIu64 - ") are not reliable. This can lead to image corruption.", - format_name(base_format), handle->alloc_format); - } + // TODO(b/182885532): Allocate the complete buffer contiguously + if (handle->plane_info[plane_index].fd_idx == plane_index) + { + offset = (int64_t)handle->bases[plane_index] - handle->bases[0]; } PlaneLayout layout = {.offsetInBytes = offset, |