huangcm
2025-09-01 53d8e046ac1bf2ebe94f671983e3d3be059df91a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
/*
 * Copyright 2016 The Chromium OS Authors. All rights reserved.
 * Use of this source code is governed by a BSD-style license that can be
 * found in the LICENSE file.
 */
 
#include <stddef.h>
#include <stdio.h>
 
#include "drv.h"
#include "gbm.h"
 
uint64_t gbm_convert_usage(uint32_t usage)
{
   uint64_t use_flags = BO_USE_NONE;
 
   if (usage & GBM_BO_USE_SCANOUT)
       use_flags |= BO_USE_SCANOUT;
   if (usage & GBM_BO_USE_CURSOR)
       use_flags |= BO_USE_CURSOR;
   if (usage & GBM_BO_USE_CURSOR_64X64)
       use_flags |= BO_USE_CURSOR_64X64;
   if (usage & GBM_BO_USE_RENDERING)
       use_flags |= BO_USE_RENDERING;
   if (usage & GBM_BO_USE_TEXTURING)
       use_flags |= BO_USE_TEXTURE;
   if (usage & GBM_BO_USE_LINEAR)
       use_flags |= BO_USE_LINEAR;
   if (usage & GBM_BO_USE_CAMERA_WRITE)
       use_flags |= BO_USE_CAMERA_WRITE;
   if (usage & GBM_BO_USE_CAMERA_READ)
       use_flags |= BO_USE_CAMERA_READ;
   if (usage & GBM_BO_USE_PROTECTED)
       use_flags |= BO_USE_PROTECTED;
   if (usage & GBM_BO_USE_SW_READ_OFTEN)
       use_flags |= BO_USE_SW_READ_OFTEN;
   if (usage & GBM_BO_USE_SW_READ_RARELY)
       use_flags |= BO_USE_SW_READ_RARELY;
   if (usage & GBM_BO_USE_SW_WRITE_OFTEN)
       use_flags |= BO_USE_SW_WRITE_OFTEN;
   if (usage & GBM_BO_USE_SW_WRITE_RARELY)
       use_flags |= BO_USE_SW_WRITE_RARELY;
   if (usage & GBM_BO_USE_HW_VIDEO_DECODER)
       use_flags |= BO_USE_HW_VIDEO_DECODER;
 
   return use_flags;
}