mirror of
https://gitee.com/openharmony/graphic_graphic_2d
synced 2024-11-23 07:02:25 +00:00
53955e364e
Signed-off-by: ZhuGangQiang <zhugangqiang3@huawei.com>
371 lines
12 KiB
Plaintext
371 lines
12 KiB
Plaintext
# Copyright (c) 2021 Huawei Device Co., Ltd.
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
|
|
import("//build/config/components/multimodalinput/cursor_config.gni")
|
|
declare_args() {
|
|
graphic_2d_feature_product = "default"
|
|
graphic_2d_feature_enable_pgo = false
|
|
graphic_2d_feature_pgo_path = ""
|
|
graphic_2d_feature_bootanimation_enable = true
|
|
graphic_2d_feature_ace_enable_gpu = true
|
|
graphic_2d_feature_color_gamut_enable = false
|
|
graphic_2d_feature_rs_enable_eglimage = false
|
|
graphic_2d_feature_rs_enable_profiler = true
|
|
graphic_2d_feature_use_texgine = false
|
|
graphic_2d_feature_rs_enable_uni_render = false
|
|
graphic_2d_feature_wuji_enable = false
|
|
graphic_2d_feature_enable_afbc = false
|
|
graphic_2d_feature_freemem_enable = false
|
|
graphic_2d_feature_parallel_render_enable = true
|
|
graphic_2d_feature_enable_vulkan = false
|
|
graphic_2d_feature_enable_flutter_vulkan = false
|
|
graphic_2d_feature_enable_opengl = true
|
|
graphic_2d_feature_enable_ddgr = false
|
|
graphic_2d_feature_enable_opinc = false
|
|
graphic_2d_feature_enable_filter_cache = true
|
|
graphic_2d_feature_parallel_upload_enable = true
|
|
enable_text_gine = true
|
|
use_texgine = false
|
|
use_skia_txt = true
|
|
use_video_processing_engine = false
|
|
logger_enable_scope = false
|
|
texgine_enable_debug_log = false
|
|
player_framework_enable = true
|
|
graphic_2d_feature_drivers_interface_display_enable = true
|
|
graphic_2d_feature_tp_switch_enbale = false
|
|
graphic_2d_feature_use_igraphics_extend_hooks = false
|
|
graphic_2d_feature_use_aps_igameservice_func = false
|
|
graphic_2d_feature_enable_chipset_vsync = false
|
|
graphic_2d_feature_enable_rspipeline = true
|
|
graphic_2d_feature_enable_prefetch = true
|
|
graphic_2d_feature_bootanimation_ext_enable = "default"
|
|
|
|
if (defined(is_arkui_x) && is_arkui_x) {
|
|
is_cross_platform = true
|
|
} else {
|
|
is_cross_platform = false
|
|
}
|
|
}
|
|
|
|
declare_args() {
|
|
graphic_2d_feature_enable_stack_culling = false
|
|
graphic_2d_feature_vkqueue_priority_enable = false
|
|
}
|
|
|
|
if (graphic_2d_feature_product == "phone" ||
|
|
graphic_2d_feature_product == "pc" ||
|
|
graphic_2d_feature_product == "tablet" ||
|
|
graphic_2d_feature_product == "wearable") {
|
|
graphic_2d_feature_enable_vulkan = true
|
|
graphic_2d_feature_enable_ddgr = false
|
|
graphic_2d_feature_enable_stack_culling = true
|
|
}
|
|
|
|
if (graphic_2d_feature_product == "phone" ||
|
|
graphic_2d_feature_product == "tablet" ||
|
|
graphic_2d_feature_product == "wearable") {
|
|
graphic_2d_feature_enable_opinc = true
|
|
}
|
|
|
|
gpu_defines = []
|
|
accessibility_defines = []
|
|
if (enable_text_gine) {
|
|
gpu_defines += [ "USE_GRAPHIC_TEXT_GINE" ]
|
|
}
|
|
if (graphic_2d_feature_ace_enable_gpu) {
|
|
if (graphic_2d_feature_enable_flutter_vulkan) {
|
|
gpu_defines += [ "RS_ENABLE_OLD_VK" ]
|
|
}
|
|
if (graphic_2d_feature_enable_vulkan) {
|
|
gpu_defines += [
|
|
"ACE_ENABLE_VK",
|
|
"RS_ENABLE_VK",
|
|
]
|
|
if (graphic_2d_feature_enable_ddgr) {
|
|
gpu_defines += [ "ENABLE_DDGR_OPTIMIZE" ]
|
|
import("//foundation/graphic/graphic_2d_ext/ddgr/config.gni")
|
|
}
|
|
}
|
|
if (graphic_2d_feature_enable_opengl) {
|
|
gpu_defines += [
|
|
"ACE_ENABLE_GL",
|
|
"RS_ENABLE_GL",
|
|
]
|
|
}
|
|
if (graphic_2d_feature_enable_stack_culling) {
|
|
gpu_defines += [ "RS_ENABLE_STACK_CULLING" ]
|
|
}
|
|
|
|
if (graphic_2d_feature_enable_opinc) {
|
|
gpu_defines += [ "DDGR_ENABLE_FEATURE_OPINC" ]
|
|
}
|
|
|
|
ace_enable_gpu = true
|
|
rs_enable_gpu = true
|
|
surface_enable_gpu = true
|
|
|
|
libvulkan = []
|
|
if (graphic_2d_feature_enable_vulkan) {
|
|
libvulkan += [ "//third_party/vulkan-loader:vulkan_loader" ]
|
|
}
|
|
} else {
|
|
gpu_defines += [ "ACE_DISABLE_GL" ]
|
|
ace_enable_gpu = false
|
|
rs_enable_gpu = false
|
|
surface_enable_gpu = false
|
|
libvulkan = []
|
|
}
|
|
|
|
if (graphic_2d_feature_enable_vulkan &&
|
|
graphic_2d_feature_vkqueue_priority_enable) {
|
|
gpu_defines += [ "RS_ENABLE_VKQUEUE_PRIORITY" ]
|
|
}
|
|
|
|
if (graphic_2d_feature_parallel_upload_enable &&
|
|
graphic_2d_feature_rs_enable_uni_render &&
|
|
graphic_2d_feature_product == "phone") {
|
|
rs_enable_parallel_upload = true
|
|
gpu_defines += [ "RS_ENABLE_PARALLEL_UPLOAD" ]
|
|
} else {
|
|
rs_enable_parallel_upload = false
|
|
}
|
|
|
|
if (graphic_2d_feature_rs_enable_eglimage || current_os == "android") {
|
|
gpu_defines += [
|
|
"RS_ENABLE_EGLIMAGE",
|
|
"RS_ENABLE_EGLQUERYSURFACE",
|
|
]
|
|
rs_enable_eglimage = true
|
|
} else {
|
|
gpu_defines += [ "RS_DISABLE_EGLIMAGE" ]
|
|
rs_enable_eglimage = false
|
|
}
|
|
|
|
# use_texgine = graphic_2d_feature_use_texgine
|
|
|
|
if (graphic_2d_feature_rs_enable_uni_render) {
|
|
graphic_2d_feature_enable_dvsync = true
|
|
if (graphic_2d_feature_product == "phone") {
|
|
graphic_2d_feature_enable_chipset_vsync = true
|
|
}
|
|
gpu_defines += [ "RS_ENABLE_UNI_RENDER" ]
|
|
} else {
|
|
graphic_2d_feature_enable_dvsync = false
|
|
graphic_2d_feature_enable_chipset_vsync = false
|
|
}
|
|
|
|
if (graphic_2d_feature_enable_afbc) {
|
|
gpu_defines += [ "RS_ENABLE_AFBC" ]
|
|
}
|
|
|
|
if (graphic_2d_feature_parallel_render_enable) {
|
|
rs_enable_parallel_render = true
|
|
gpu_defines += [ "RS_ENABLE_PARALLEL_RENDER" ]
|
|
}
|
|
|
|
if (graphic_2d_feature_enable_dvsync) {
|
|
gpu_defines += [ "RS_ENABLE_DVSYNC" ]
|
|
}
|
|
if (graphic_2d_feature_enable_chipset_vsync) {
|
|
gpu_defines += [ "RS_ENABLE_CHIPSET_VSYNC" ]
|
|
}
|
|
|
|
tp_defines = []
|
|
tp_feature_enable = false
|
|
if (graphic_2d_feature_tp_switch_enbale) {
|
|
tp_feature_enable = true
|
|
tp_defines = [ "TP_FEATURE_ENABLE" ]
|
|
}
|
|
|
|
check_graphic_ext_file_script = "//build/ohos/file_exists.py"
|
|
|
|
check_ddgr_ext_file_args = [
|
|
"--filename",
|
|
rebase_path("//foundation/graphic/graphic_2d_ext/ddgr/ddgr_config.gni"),
|
|
]
|
|
check_igraphics_core_file_args = [
|
|
"--filename",
|
|
rebase_path(
|
|
"//vendor/huawei/foundation/graphics_game/gpu_turbo_x/EGL/config.gni"),
|
|
]
|
|
check_igameservice_core_file_args = [
|
|
"--filename",
|
|
rebase_path(
|
|
"//vendor/huawei/domains/game/gameservice_server/performance/graphics/report/config.gni"),
|
|
]
|
|
check_aps_core_file_args = [
|
|
"--filename",
|
|
rebase_path("//foundation/graphic/graphic_2d_ext/aps_manager/config.gni"),
|
|
]
|
|
check_delegator_ext_file_args = [
|
|
"--filename",
|
|
rebase_path("//foundation/graphic/graphic_2d_ext/delegator/config.gni"),
|
|
]
|
|
check_broker_ext_file_args = [
|
|
"--filename",
|
|
rebase_path(
|
|
"//foundation/graphic/graphic_2d_ext/ohcore/build/broker_config.gni"),
|
|
]
|
|
check_hgm_ext_file_args = [
|
|
"--filename",
|
|
rebase_path(
|
|
"//foundation/graphic/graphic_2d_ext/hgm_manager/build/hgm_config.gni"),
|
|
]
|
|
|
|
if (exec_script(check_graphic_ext_file_script,
|
|
check_ddgr_ext_file_args,
|
|
"string") == "True") {
|
|
ddgr_ext_configs = {
|
|
import("//foundation/graphic/graphic_2d_ext/ddgr/ddgr_config.gni")
|
|
}
|
|
}
|
|
if (exec_script(check_graphic_ext_file_script,
|
|
check_igraphics_core_file_args,
|
|
"string") == "True") {
|
|
graphic_2d_feature_use_igraphics_extend_hooks = true
|
|
import("//vendor/huawei/foundation/graphics_game/gpu_turbo_x/EGL/config.gni")
|
|
}
|
|
if (exec_script(check_graphic_ext_file_script,
|
|
check_aps_core_file_args,
|
|
"string") == "True" &&
|
|
exec_script(check_graphic_ext_file_script,
|
|
check_igameservice_core_file_args,
|
|
"string") == "True") {
|
|
graphic_2d_feature_use_aps_igameservice_func = true
|
|
import("//foundation/graphic/graphic_2d_ext/aps_manager/config.gni")
|
|
import(
|
|
"//vendor/huawei/domains/game/gameservice_server/performance/graphics/report/config.gni")
|
|
}
|
|
|
|
graphic_2d_delegator_configs = {
|
|
}
|
|
if (exec_script(check_graphic_ext_file_script,
|
|
check_delegator_ext_file_args,
|
|
"string") == "True") {
|
|
graphic_2d_delegator_configs = {
|
|
import("//foundation/graphic/graphic_2d_ext/delegator/config.gni")
|
|
}
|
|
}
|
|
|
|
graphic_2d_broker_configs = {
|
|
}
|
|
if (exec_script(check_graphic_ext_file_script,
|
|
check_broker_ext_file_args,
|
|
"string") == "True") {
|
|
graphic_2d_broker_configs = {
|
|
import("//foundation/graphic/graphic_2d_ext/ohcore/build/broker_config.gni")
|
|
}
|
|
}
|
|
|
|
graphic_2d_hgm_configs = {
|
|
}
|
|
if (exec_script(check_graphic_ext_file_script,
|
|
check_hgm_ext_file_args,
|
|
"string") == "True") {
|
|
graphic_2d_hgm_configs = {
|
|
import(
|
|
"//foundation/graphic/graphic_2d_ext/hgm_manager/build/hgm_config.gni")
|
|
}
|
|
}
|
|
|
|
check_platform_ext_file_args = [
|
|
"--filename",
|
|
rebase_path("//foundation/graphic/graphic_2d_ext/platform/config.gni"),
|
|
]
|
|
graphic_2d_platform_configs = {
|
|
}
|
|
if (exec_script(check_graphic_ext_file_script,
|
|
check_platform_ext_file_args,
|
|
"string") == "True") {
|
|
graphic_2d_platform_configs = {
|
|
import("//foundation/graphic/graphic_2d_ext/platform/config.gni")
|
|
}
|
|
}
|
|
|
|
flutter_root = "//third_party/flutter"
|
|
ace_flutter_engine_root = "$flutter_root/build"
|
|
graphic_2d_root = "//foundation/graphic/graphic_2d"
|
|
graphic_2d_ext_root = "//foundation/graphic/graphic_2d_ext"
|
|
hilog_root = "//base/hiviewdfx/hilog"
|
|
window_base_path = "//foundation/window/window_manager"
|
|
safwk_base = "//foundation/systemabilitymgr/safwk"
|
|
skia_root_new = "//third_party/skia"
|
|
graphic_surface_root = "//foundation/graphic/graphic_surface"
|
|
memmgr_root = "//foundation/resourceschedule/memmgr"
|
|
memmgr_plugin_root = "//foundation/resourceschedule/memmgr_override"
|
|
fuzz_test_output_path = "graphic_2d/graphic_2d"
|
|
video_processing_engine_root = "//foundation/multimedia/video_processing_engine"
|
|
arkui_root = "//foundation/arkui"
|
|
ace_root = "//foundation/arkui/ace_engine"
|
|
bundlefwk_path = "//foundation/bundlemanager/bundle_framework"
|
|
bundlefwk_inner_api_path = "${bundlefwk_path}/interfaces/inner_api"
|
|
mindspore_root = "//third_party/mindspore"
|
|
|
|
accessibility_enable = false
|
|
if (defined(global_parts_info) &&
|
|
defined(global_parts_info.barrierfree_accessibility)) {
|
|
accessibility_enable = true
|
|
accessibility_defines = [ "ACCESSIBILITY_ENABLE" ]
|
|
}
|
|
|
|
if (defined(global_parts_info) &&
|
|
!defined(global_parts_info.multimedia_player_framework)) {
|
|
player_framework_enable = false
|
|
}
|
|
|
|
if (defined(global_parts_info) &&
|
|
defined(global_parts_info.multimedia_video_processing_engine)) {
|
|
use_video_processing_engine = true
|
|
}
|
|
|
|
if (defined(global_parts_info) &&
|
|
!defined(global_parts_info.hdf_drivers_interface_display)) {
|
|
graphic_2d_feature_drivers_interface_display_enable = false
|
|
}
|
|
|
|
use_memmgr_plugin = false
|
|
if (defined(global_parts_info.resourceschedule_memmgr_override)) {
|
|
use_memmgr_plugin = true
|
|
}
|
|
use_memmgr = false
|
|
if (defined(global_parts_info.resourceschedule_memmgr)) {
|
|
use_memmgr = true
|
|
}
|
|
|
|
_ace_adapter_dir = rebase_path("$ace_root/adapter", root_build_dir)
|
|
_graphic_2d_adapter_dir =
|
|
rebase_path("$graphic_2d_root/adapter", root_build_dir)
|
|
|
|
if (defined(is_arkui_x) && is_arkui_x) {
|
|
# In case of arkui-x compilation, copy android and ios adapters from ace_engine
|
|
exec_script("$graphic_2d_root/utils/build/copy_arkui_adapters.py",
|
|
[
|
|
_ace_adapter_dir,
|
|
_graphic_2d_adapter_dir,
|
|
])
|
|
}
|
|
adapters = exec_script("$ace_root/build/search.py",
|
|
[ _graphic_2d_adapter_dir ],
|
|
"list lines")
|
|
if (defined(use_clang_coverage) && use_clang_coverage) {
|
|
graphic_2d_feature_rs_enable_profiler = false
|
|
}
|
|
|
|
if (defined(input_ext_feature_magiccursor) && input_ext_feature_magiccursor) {
|
|
gpu_defines += [ "OHOS_BUILD_ENABLE_MAGICCURSOR" ]
|
|
}
|
|
|
|
if (defined(graphic_2d_feature_enable_prefetch)) {
|
|
gpu_defines += [ "RS_ENABLE_PREFETCH" ]
|
|
}
|