# 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_enable_recording_dcl = true 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 if (defined(is_arkui_x) && is_arkui_x) { use_new_render_context = false is_cross_platform = true } else { is_cross_platform = false use_new_render_context = false } } declare_args() { graphic_2d_feature_enable_stack_culling = 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" ] } if (graphic_2d_feature_enable_recording_dcl) { rs_enable_recording_dcl = true gpu_defines += [ "ENABLE_RECORDING_DCL" ] } else { rs_enable_recording_dcl = false } 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_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 (defined(use_new_render_context) && use_new_render_context) { rs_enable_parallel_render = false 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" ] } graphic_2d_ext_configs = { } check_graphic_ext_file_script = "//build/ohos/file_exists.py" check_graphic_ext_file_args = [ "--filename", rebase_path("//foundation/graphic/graphic_2d_ext/ohcore/build/config.gni"), ] 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"), ] if (exec_script(check_graphic_ext_file_script, check_graphic_ext_file_args, "string") == "True" && "${product_name}" == "ohcore") { graphic_2d_ext_configs = { import("//foundation/graphic/graphic_2d_ext/ohcore/build/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") } } 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 graphic_2d_feature_enable_recording_dcl = false } if (defined(input_ext_feature_magiccursor) && input_ext_feature_magiccursor) { gpu_defines += [ "OHOS_BUILD_ENABLE_MAGICCURSOR" ] }