xref: /aosp_15_r20/external/swiftshader/include/Android/hardware/gralloc1.h (revision 03ce13f70fcc45d86ee91b7ee4cab1936a95046e)
1*03ce13f7SAndroid Build Coastguard Worker /*
2*03ce13f7SAndroid Build Coastguard Worker  * Copyright (C) 2018 The Android Open Source Project
3*03ce13f7SAndroid Build Coastguard Worker  *
4*03ce13f7SAndroid Build Coastguard Worker  * Licensed under the Apache License, Version 2.0 (the "License");
5*03ce13f7SAndroid Build Coastguard Worker  * you may not use this file except in compliance with the License.
6*03ce13f7SAndroid Build Coastguard Worker  * You may obtain a copy of the License at
7*03ce13f7SAndroid Build Coastguard Worker  *
8*03ce13f7SAndroid Build Coastguard Worker  * http://www.apache.org/licenses/LICENSE-2.0
9*03ce13f7SAndroid Build Coastguard Worker  *
10*03ce13f7SAndroid Build Coastguard Worker  * Unless required by applicable law or agreed to in writing, software
11*03ce13f7SAndroid Build Coastguard Worker  * distributed under the License is distributed on an "AS IS" BASIS,
12*03ce13f7SAndroid Build Coastguard Worker  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13*03ce13f7SAndroid Build Coastguard Worker  * See the License for the specific language governing permissions and
14*03ce13f7SAndroid Build Coastguard Worker  * limitations under the License.
15*03ce13f7SAndroid Build Coastguard Worker  */
16*03ce13f7SAndroid Build Coastguard Worker 
17*03ce13f7SAndroid Build Coastguard Worker #pragma once
18*03ce13f7SAndroid Build Coastguard Worker 
19*03ce13f7SAndroid Build Coastguard Worker #include <hardware/hardware.h>
20*03ce13f7SAndroid Build Coastguard Worker 
21*03ce13f7SAndroid Build Coastguard Worker #include <cutils/native_handle.h>
22*03ce13f7SAndroid Build Coastguard Worker 
23*03ce13f7SAndroid Build Coastguard Worker #define GRALLOC_MODULE_API_VERSION_1_0 HARDWARE_MAKE_API_VERSION(1, 0)
24*03ce13f7SAndroid Build Coastguard Worker 
25*03ce13f7SAndroid Build Coastguard Worker #define GRALLOC_HARDWARE_MODULE_ID "gralloc"
26*03ce13f7SAndroid Build Coastguard Worker 
27*03ce13f7SAndroid Build Coastguard Worker enum {
28*03ce13f7SAndroid Build Coastguard Worker     GRALLOC1_ERROR_NONE = 0,
29*03ce13f7SAndroid Build Coastguard Worker     GRALLOC1_ERROR_BAD_HANDLE = 2,
30*03ce13f7SAndroid Build Coastguard Worker     GRALLOC1_ERROR_BAD_VALUE = 3,
31*03ce13f7SAndroid Build Coastguard Worker     GRALLOC1_ERROR_UNDEFINED = 6,
32*03ce13f7SAndroid Build Coastguard Worker };
33*03ce13f7SAndroid Build Coastguard Worker 
34*03ce13f7SAndroid Build Coastguard Worker enum {
35*03ce13f7SAndroid Build Coastguard Worker     GRALLOC1_FUNCTION_LOCK = 18,
36*03ce13f7SAndroid Build Coastguard Worker     GRALLOC1_FUNCTION_UNLOCK = 20,
37*03ce13f7SAndroid Build Coastguard Worker };
38*03ce13f7SAndroid Build Coastguard Worker 
39*03ce13f7SAndroid Build Coastguard Worker enum {
40*03ce13f7SAndroid Build Coastguard Worker     GRALLOC1_CONSUMER_USAGE_CPU_READ = 1ULL << 1,
41*03ce13f7SAndroid Build Coastguard Worker     GRALLOC1_CONSUMER_USAGE_CPU_READ_OFTEN = 1ULL << 2 | GRALLOC1_CONSUMER_USAGE_CPU_READ,
42*03ce13f7SAndroid Build Coastguard Worker     GRALLOC1_CONSUMER_USAGE_CPU_WRITE = 1ULL << 5,
43*03ce13f7SAndroid Build Coastguard Worker     GRALLOC1_CONSUMER_USAGE_CPU_WRITE_OFTEN = 1ULL << 6 | GRALLOC1_CONSUMER_USAGE_CPU_WRITE,
44*03ce13f7SAndroid Build Coastguard Worker     GRALLOC1_CONSUMER_USAGE_GPU_TEXTURE = 1ULL << 8,
45*03ce13f7SAndroid Build Coastguard Worker };
46*03ce13f7SAndroid Build Coastguard Worker 
47*03ce13f7SAndroid Build Coastguard Worker enum {
48*03ce13f7SAndroid Build Coastguard Worker     GRALLOC1_PRODUCER_USAGE_CPU_READ = 1ULL << 1,
49*03ce13f7SAndroid Build Coastguard Worker     GRALLOC1_PRODUCER_USAGE_CPU_READ_OFTEN = 1ULL << 2 | GRALLOC1_PRODUCER_USAGE_CPU_READ,
50*03ce13f7SAndroid Build Coastguard Worker     GRALLOC1_PRODUCER_USAGE_CPU_WRITE = 1ULL << 5,
51*03ce13f7SAndroid Build Coastguard Worker     GRALLOC1_PRODUCER_USAGE_CPU_WRITE_OFTEN = 1ULL << 6 | GRALLOC1_PRODUCER_USAGE_CPU_WRITE,
52*03ce13f7SAndroid Build Coastguard Worker     GRALLOC1_PRODUCER_USAGE_GPU_RENDER_TARGET = 1ULL << 9,
53*03ce13f7SAndroid Build Coastguard Worker };
54*03ce13f7SAndroid Build Coastguard Worker 
55*03ce13f7SAndroid Build Coastguard Worker typedef void (*gralloc1_function_pointer_t)();
56*03ce13f7SAndroid Build Coastguard Worker 
57*03ce13f7SAndroid Build Coastguard Worker struct gralloc1_rect_t {
58*03ce13f7SAndroid Build Coastguard Worker     int32_t left;
59*03ce13f7SAndroid Build Coastguard Worker     int32_t top;
60*03ce13f7SAndroid Build Coastguard Worker     int32_t width;
61*03ce13f7SAndroid Build Coastguard Worker     int32_t height;
62*03ce13f7SAndroid Build Coastguard Worker };
63*03ce13f7SAndroid Build Coastguard Worker 
64*03ce13f7SAndroid Build Coastguard Worker struct gralloc1_device_t {
65*03ce13f7SAndroid Build Coastguard Worker     hw_device_t common;
66*03ce13f7SAndroid Build Coastguard Worker     void (*getCapabilities)(gralloc1_device_t*, uint32_t*, int32_t*);
67*03ce13f7SAndroid Build Coastguard Worker     gralloc1_function_pointer_t (*getFunction)(gralloc1_device_t*, int32_t);
68*03ce13f7SAndroid Build Coastguard Worker };
69*03ce13f7SAndroid Build Coastguard Worker 
70*03ce13f7SAndroid Build Coastguard Worker typedef int32_t (*GRALLOC1_PFN_LOCK)(gralloc1_device_t*, buffer_handle_t, uint64_t, uint64_t,
71*03ce13f7SAndroid Build Coastguard Worker                                      const gralloc1_rect_t*, void**, int32_t);
72*03ce13f7SAndroid Build Coastguard Worker typedef int32_t (*GRALLOC1_PFN_UNLOCK)(gralloc1_device_t*, buffer_handle_t, int32_t*);
73*03ce13f7SAndroid Build Coastguard Worker 
gralloc1_open(const hw_module_t * module,gralloc1_device_t ** device)74*03ce13f7SAndroid Build Coastguard Worker static inline int gralloc1_open(const hw_module_t* module, gralloc1_device_t** device) {
75*03ce13f7SAndroid Build Coastguard Worker     return module->methods->open(module, GRALLOC_HARDWARE_MODULE_ID,
76*03ce13f7SAndroid Build Coastguard Worker                                  reinterpret_cast<hw_device_t**>(device));
77*03ce13f7SAndroid Build Coastguard Worker }
78