UPSTREAM: cros_gralloc: Avoid using masks in handle_usage()
After https://crrev.com/c/5907583, handle_usage() tries to match the entire value. An allocation with usage 0x100000203 from BufferUsage::GPU_RENDER_TARGET | BufferUsage::CPU_READ_OFTEN | BufferUsage::FRONT_BUFFER would fail to match the combined BUFFER_USAGE_FRONT_RENDERING_MASK (`1U << 28 | 1ULL << 32`) because the allocation only sets a single usage bit `BUFFER_USAGE_FRONT_RENDERING` (`1ULL << 32`) and not the combined mask. Bug: b/373474508 Test: vts -m VtsHalGraphicsAllocatorAidl_TargetTest Change-Id: I926789a7aab937f2c2092475cb40ad9666b4f95f
This commit is contained in:
parent
93d9ee4352
commit
3b405c8fdf
2 changed files with 8 additions and 3 deletions
|
|
@ -139,7 +139,9 @@ uint64_t cros_gralloc_convert_usage(uint64_t usage)
|
|||
handle_usage(&usage, BUFFER_USAGE_SENSOR_DIRECT_DATA, &use_flags,
|
||||
BO_USE_SENSOR_DIRECT_DATA);
|
||||
handle_usage(&usage, BUFFER_USAGE_GPU_DATA_BUFFER, &use_flags, BO_USE_GPU_DATA_BUFFER);
|
||||
handle_usage(&usage, BUFFER_USAGE_FRONT_RENDERING_MASK, &use_flags, BO_USE_FRONT_RENDERING);
|
||||
handle_usage(&usage, BUFFER_USAGE_FRONT_RENDERING, &use_flags, BO_USE_FRONT_RENDERING);
|
||||
handle_usage(&usage, BUFFER_USAGE_FRONT_RENDERING_PRIVATE, &use_flags,
|
||||
BO_USE_FRONT_RENDERING);
|
||||
|
||||
if (usage) {
|
||||
ALOGE("Unhandled gralloc usage: %llx", (unsigned long long)usage);
|
||||
|
|
|
|||
|
|
@ -21,10 +21,13 @@
|
|||
// Reserve the GRALLOC_USAGE_PRIVATE_0 bit from hardware/gralloc.h for buffers
|
||||
// used for front rendering. minigbm backend later decides to use
|
||||
// BO_USE_FRONT_RENDERING or BO_USE_LINEAR upon buffer allocaton.
|
||||
#define BUFFER_USAGE_FRONT_RENDERING (1U << 28)
|
||||
#define BUFFER_USAGE_FRONT_RENDERING_PRIVATE (1U << 28)
|
||||
|
||||
// Adopt BufferUsage::FRONT_BUFFER from api level 33
|
||||
#define BUFFER_USAGE_FRONT_RENDERING_MASK (BUFFER_USAGE_FRONT_RENDERING | (1ULL << 32))
|
||||
#define BUFFER_USAGE_FRONT_RENDERING (1ULL << 32)
|
||||
|
||||
#define BUFFER_USAGE_FRONT_RENDERING_MASK \
|
||||
(BUFFER_USAGE_FRONT_RENDERING | BUFFER_USAGE_FRONT_RENDERING_PRIVATE)
|
||||
|
||||
#define CROS_GRALLOC_BUFFER_METADATA_MAX_NAME_SIZE 1024
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue