blob: 0609226b132e36be9a320ba7a9d05d5929cea0c0 [file] [log] [blame]
John Stultz16100f62017-05-03 11:12:18 -07001#
John Stultz18814f62018-02-22 16:02:49 -08002# Copyright (C) 2016-2017 ARM Limited. All rights reserved.
John Stultz16100f62017-05-03 11:12:18 -07003#
4# Copyright (C) 2008 The Android Open Source Project
5#
6# Licensed under the Apache License, Version 2.0 (the "License");
7# you may not use this file except in compliance with the License.
8# You may obtain a copy of the License at
9#
10# http://www.apache.org/licenses/LICENSE-2.0
11#
12# Unless required by applicable law or agreed to in writing, software
13# distributed under the License is distributed on an "AS IS" BASIS,
14# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15# See the License for the specific language governing permissions and
16# limitations under the License.
17
18LOCAL_PATH := $(call my-dir)
19
20# Include platform specific makefiles
21include $(if $(wildcard $(LOCAL_PATH)/Android.$(TARGET_BOARD_PLATFORM).mk), $(LOCAL_PATH)/Android.$(TARGET_BOARD_PLATFORM).mk,)
22
23#
24# Static hardware defines
25#
26# These defines are used in case runtime detection does not find the
27# user-space driver to read out hardware capabilities
28
29# GPU support for AFBC 1.0
30MALI_GPU_SUPPORT_AFBC_BASIC?=0
31# GPU support for AFBC 1.1 block split
32MALI_GPU_SUPPORT_AFBC_SPLITBLK?=0
33# GPU support for AFBC 1.1 wide block
34MALI_GPU_SUPPORT_AFBC_WIDEBLK?=0
35# GPU support for AFBC 1.2 tiled headers
36MALI_GPU_SUPPORT_AFBC_TILED_HEADERS?=0
37# GPU support YUV AFBC formats in wide block
38MALI_GPU_USE_YUV_AFBC_WIDEBLK?=0
39
40# VPU version we support
41MALI_VIDEO_VERSION?=0
42# DPU version we support
43MALI_DISPLAY_VERSION?=0
44
45#
46# Software behaviour defines
47#
48
John Stultz18814f62018-02-22 16:02:49 -080049# Gralloc1 support
50GRALLOC_USE_GRALLOC1_API?=0
John Stultz16100f62017-05-03 11:12:18 -070051# Use ION DMA heap for all allocations. Default is system heap.
52GRALLOC_USE_ION_DMA_HEAP?=0
53# Use ION Compound heap for all allocations. Default is system heap.
54GRALLOC_USE_ION_COMPOUND_PAGE_HEAP?=0
55# Properly initializes an empty AFBC buffer
56GRALLOC_INIT_AFBC?=0
57# fbdev bitdepth to use
58GRALLOC_DEPTH?=GRALLOC_32_BITS
59# When enabled, forces display framebuffer format to BGRA_8888
60GRALLOC_FB_SWAP_RED_BLUE?=1
61# Disables the framebuffer HAL device. When a hwc impl is available.
62GRALLOC_DISABLE_FRAMEBUFFER_HAL?=0
63# When enabled, buffers will never be allocated with AFBC
64GRALLOC_ARM_NO_EXTERNAL_AFBC?=0
65# Minimum buffer dimensions in pixels when buffer will use AFBC
66GRALLOC_DISP_W?=0
67GRALLOC_DISP_H?=0
68# Vsync backend(not used)
69GRALLOC_VSYNC_BACKEND?=default
70
71# HAL module implemenation, not prelinked and stored in
72# hw/<OVERLAY_HARDWARE_MODULE_ID>.<ro.product.board>.so
73include $(CLEAR_VARS)
John Stultz18814f62018-02-22 16:02:49 -080074include $(BUILD_SYSTEM)/version_defaults.mk
John Stultz16100f62017-05-03 11:12:18 -070075
76ifeq ($(TARGET_BOARD_PLATFORM), juno)
77ifeq ($(MALI_MMSS), 1)
78
79# Use latest default MMSS build configuration if not already defined
80ifeq ($(MALI_DISPLAY_VERSION), 0)
81MALI_DISPLAY_VERSION = 650
82endif
83ifeq ($(MALI_VIDEO_VERSION), 0)
84MALI_VIDEO_VERSION = 550
85endif
86
87GRALLOC_FB_SWAP_RED_BLUE = 0
88GRALLOC_USE_ION_DMA_HEAP = 1
89endif
90endif
91
92ifeq ($(TARGET_BOARD_PLATFORM), armboard_v7a)
93ifeq ($(GRALLOC_MALI_DP),true)
94 GRALLOC_FB_SWAP_RED_BLUE = 0
95 GRALLOC_DISABLE_FRAMEBUFFER_HAL=1
96 MALI_DISPLAY_VERSION = 550
97 GRALLOC_USE_ION_DMA_HEAP=1
98endif
99endif
100
101ifneq ($(MALI_DISPLAY_VERSION), 0)
102#if Mali display is available, should disable framebuffer HAL
103GRALLOC_DISABLE_FRAMEBUFFER_HAL := 1
104#if Mali display is available, AFBC buffers should be initialised after allocation
105GRALLOC_INIT_AFBC := 1
106endif
107
108ifeq ($(GRALLOC_USE_ION_DMA_HEAP), 1)
109ifeq ($(GRALLOC_USE_ION_COMPOUND_PAGE_HEAP), 1)
110$(error GRALLOC_USE_ION_DMA_HEAP and GRALLOC_USE_ION_COMPOUND_PAGE_HEAP can't be enabled at the same time)
111endif
112endif
113
John Stultz18814f62018-02-22 16:02:49 -0800114PLATFORM_SDK_GREATER_THAN_24 := $(shell expr $(PLATFORM_SDK_VERSION) \> 24)
115
116ifeq ($(PLATFORM_SDK_GREATER_THAN_24), 1)
117ifeq ($(GRALLOC_EXPERIMENTAL), 1)
118 GRALLOC_USE_GRALLOC1_API := 1
119endif
120endif
121
John Stultz16100f62017-05-03 11:12:18 -0700122LOCAL_C_INCLUDES := $(MALI_LOCAL_PATH) $(MALI_DDK_INCLUDES)
123
124# General compilation flags
125LOCAL_CFLAGS := -Werror -DLOG_TAG=\"gralloc\" -DPLATFORM_SDK_VERSION=$(PLATFORM_SDK_VERSION)
126
127# Static hw flags
128LOCAL_CFLAGS += -DMALI_GPU_SUPPORT_AFBC_BASIC=$(MALI_GPU_SUPPORT_AFBC_BASIC)
129LOCAL_CFLAGS += -DMALI_GPU_SUPPORT_AFBC_SPLITBLK=$(MALI_GPU_SUPPORT_AFBC_SPLITBLK)
130LOCAL_CFLAGS += -DMALI_GPU_SUPPORT_AFBC_WIDEBLK=$(MALI_GPU_SUPPORT_AFBC_WIDEBLK)
131LOCAL_CFLAGS += -DMALI_GPU_USE_YUV_AFBC_WIDEBLK=$(MALI_GPU_USE_YUV_AFBC_WIDEBLK)
132LOCAL_CFLAGS += -DMALI_GPU_SUPPORT_AFBC_TILED_HEADERS=$(MALI_GPU_SUPPORT_AFBC_TILED_HEADERS)
133
134LOCAL_CFLAGS += -DMALI_DISPLAY_VERSION=$(MALI_DISPLAY_VERSION)
135LOCAL_CFLAGS += -DMALI_VIDEO_VERSION=$(MALI_VIDEO_VERSION)
136
137# Software behaviour flags
John Stultz18814f62018-02-22 16:02:49 -0800138LOCAL_CFLAGS += -DGRALLOC_USE_GRALLOC1_API=$(GRALLOC_USE_GRALLOC1_API)
John Stultz16100f62017-05-03 11:12:18 -0700139LOCAL_CFLAGS += -DGRALLOC_DISP_W=$(GRALLOC_DISP_W)
140LOCAL_CFLAGS += -DGRALLOC_DISP_H=$(GRALLOC_DISP_H)
141LOCAL_CFLAGS += -DDISABLE_FRAMEBUFFER_HAL=$(GRALLOC_DISABLE_FRAMEBUFFER_HAL)
142LOCAL_CFLAGS += -DGRALLOC_USE_ION_DMA_HEAP=$(GRALLOC_USE_ION_DMA_HEAP)
143LOCAL_CFLAGS += -DGRALLOC_USE_ION_COMPOUND_PAGE_HEAP=$(GRALLOC_USE_ION_COMPOUND_PAGE_HEAP)
144LOCAL_CFLAGS += -DGRALLOC_INIT_AFBC=$(GRALLOC_INIT_AFBC)
145LOCAL_CFLAGS += -D$(GRALLOC_DEPTH)
146LOCAL_CFLAGS += -DGRALLOC_FB_SWAP_RED_BLUE=$(GRALLOC_FB_SWAP_RED_BLUE)
147LOCAL_CFLAGS += -DGRALLOC_ARM_NO_EXTERNAL_AFBC=$(GRALLOC_ARM_NO_EXTERNAL_AFBC)
John Stultz18814f62018-02-22 16:02:49 -0800148LOCAL_CFLAGS += -DGRALLOC_LIBRARY_BUILD=1
John Stultz16100f62017-05-03 11:12:18 -0700149
John Stultz18814f62018-02-22 16:02:49 -0800150LOCAL_SHARED_LIBRARIES := libhardware liblog libcutils libGLESv1_CM libion libsync libutils
John Stultz16100f62017-05-03 11:12:18 -0700151
152LOCAL_PRELINK_MODULE := false
153LOCAL_MODULE_RELATIVE_PATH := hw
154LOCAL_MODULE_PATH_32 := $(TARGET_OUT_VENDOR)/lib
155LOCAL_MODULE_PATH_64 := $(TARGET_OUT_VENDOR)/lib64
John Stultz51d2a0d2017-05-26 22:06:58 -0700156LOCAL_MODULE := gralloc.hikey960
John Stultz16100f62017-05-03 11:12:18 -0700157
158LOCAL_MODULE_TAGS := optional
159LOCAL_MULTILIB := both
160
161LOCAL_SRC_FILES := \
John Stultz18814f62018-02-22 16:02:49 -0800162 mali_gralloc_module.cpp \
John Stultz16100f62017-05-03 11:12:18 -0700163 framebuffer_device.cpp \
164 gralloc_buffer_priv.cpp \
165 gralloc_vsync_${GRALLOC_VSYNC_BACKEND}.cpp \
John Stultz18814f62018-02-22 16:02:49 -0800166 mali_gralloc_bufferaccess.cpp \
167 mali_gralloc_bufferallocation.cpp \
168 mali_gralloc_bufferdescriptor.cpp \
169 mali_gralloc_ion.cpp \
170 mali_gralloc_formats.cpp \
171 mali_gralloc_reference.cpp \
172 mali_gralloc_debug.cpp
173
174ifeq ($(GRALLOC_USE_GRALLOC1_API), 1)
175LOCAL_SRC_FILES += \
176 mali_gralloc_public_interface.cpp \
177 mali_gralloc_private_interface.cpp
178else
179LOCAL_SRC_FILES += legacy/alloc_device.cpp
180endif
John Stultz16100f62017-05-03 11:12:18 -0700181
182LOCAL_MODULE_OWNER := arm
183
184include $(BUILD_SHARED_LIBRARY)