godotengine / godot

Godot Engine – Multi-platform 2D and 3D game engine
https://godotengine.org
MIT License
90.82k stars 21.13k forks source link

After I upgraded my Godot from version 4.2 to 4.3, I encountered a persistent error related to text_server_adv every time I opened the project. (macOS Sequoia, Chinese system font) #96101

Closed TamakoT closed 1 month ago

TamakoT commented 2 months ago

Tested versions

System information

Godot v4.3.stable.mono - macOS 15.0.0 - Vulkan (Forward+) - integrated Apple M2 - Apple M2 (8 Threads)

Issue description

Every project I open with Godot version 4.3 repeats the following error, totaling over 100,000 lines. This occurs whether I open a project converted from 4.2 to 4.3 or create a new project in version 4.3.

Steps to reproduce

Every time I create a new project or open an existing one, I get over 100,000 lines of this error. Additionally, the error occurs every time I press Command + S to save, or when I open any editor sub-window.

Minimal reproduction project (MRP)

I believe this is not an issue with my project; even when I create a brand new empty project, the error occurs. This seems to be a problem with Godot itself.

akien-mga commented 2 months ago

If this happens in all projects, but doesn't seem to happen for the vast majority of Godot users, this might be caused to some specific editor settings you have (custom font or custom theme?).

Could you check if the problem is solved if you temporarily rename the files ~/Library/Application Support/Godot/editor_settings-4.tres and ~/Library/Application Support/Godot/editor_settings-4.3.tres? And if that solves it, share the `~/Library/Application Support/Godot/editor_settings-4.3.tres file here if you can.

TamakoT commented 2 months ago

If this happens in all projects, but doesn't seem to happen for the vast majority of Godot users, this might be caused to some specific editor settings you have (custom font or custom theme?).

Could you check if the problem is solved if you temporarily rename the files ~/Library/Application Support/Godot/editor_settings-4.tres and ~/Library/Application Support/Godot/editor_settings-4.3.tres? And if that solves it, share the `~/Library/Application Support/Godot/editor_settings-4.3.tres file here if you can.

I tried the method you mentioned. In the corresponding folder, I found ~/Library/Application Support/Godot/editor_settings-4.3.tres. I renamed this file to ~/Library/Application Support/Godot/editor_settings-4.3-rename.tres. After that, I reopened Godot, opened an existing project and created a new one, but the error persists. My editor settings were reset, and here is the automatically regenerated ~/Library/Application Support/Godot/editor_settings-4.3.tres file.

[gd_resource type="EditorSettings" load_steps=2 format=3]

[sub_resource type="InputEventKey" id="InputEventKey_4f7ym"]
command_or_control_autoremap = true
alt_pressed = true
keycode = 75
unicode = 75

[resource]
interface/theme/base_color = Color(0.21, 0.24, 0.29, 1)
interface/theme/accent_color = Color(0.44, 0.73, 0.98, 1)
interface/theme/contrast = 0.3
text_editor/theme/highlighting/symbol_color = Color(0.67, 0.79, 1, 1)
text_editor/theme/highlighting/keyword_color = Color(1, 0.44, 0.52, 1)
text_editor/theme/highlighting/control_flow_keyword_color = Color(1, 0.55, 0.8, 1)
text_editor/theme/highlighting/base_type_color = Color(0.26, 1, 0.76, 1)
text_editor/theme/highlighting/engine_type_color = Color(0.56, 1, 0.86, 1)
text_editor/theme/highlighting/user_type_color = Color(0.78, 1, 0.93, 1)
text_editor/theme/highlighting/comment_color = Color(0.8025, 0.81, 0.8225, 0.5)
text_editor/theme/highlighting/doc_comment_color = Color(0.6, 0.7, 0.8, 0.8)
text_editor/theme/highlighting/string_color = Color(1, 0.93, 0.63, 1)
text_editor/theme/highlighting/background_color = Color(0.1155, 0.132, 0.1595, 1)
text_editor/theme/highlighting/completion_background_color = Color(0.21, 0.24, 0.29, 1)
text_editor/theme/highlighting/completion_selected_color = Color(1, 1, 1, 0.07)
text_editor/theme/highlighting/completion_existing_color = Color(1, 1, 1, 0.14)
text_editor/theme/highlighting/completion_font_color = Color(0.8025, 0.81, 0.8225, 1)
text_editor/theme/highlighting/text_color = Color(0.8025, 0.81, 0.8225, 1)
text_editor/theme/highlighting/line_number_color = Color(0.8025, 0.81, 0.8225, 0.5)
text_editor/theme/highlighting/safe_line_number_color = Color(0.8025, 0.972, 0.8225, 0.75)
text_editor/theme/highlighting/caret_color = Color(1, 1, 1, 1)
text_editor/theme/highlighting/selection_color = Color(0.44, 0.73, 0.98, 0.4)
text_editor/theme/highlighting/brace_mismatch_color = Color(1, 0.47, 0.42, 1)
text_editor/theme/highlighting/current_line_color = Color(1, 1, 1, 0.07)
text_editor/theme/highlighting/line_length_guideline_color = Color(0.21, 0.24, 0.29, 1)
text_editor/theme/highlighting/word_highlighted_color = Color(1, 1, 1, 0.07)
text_editor/theme/highlighting/number_color = Color(0.63, 1, 0.88, 1)
text_editor/theme/highlighting/function_color = Color(0.34, 0.7, 1, 1)
text_editor/theme/highlighting/member_variable_color = Color(0.736, 0.88, 1, 1)
text_editor/theme/highlighting/mark_color = Color(1, 0.47, 0.42, 0.3)
text_editor/theme/highlighting/breakpoint_color = Color(1, 0.47, 0.42, 1)
text_editor/theme/highlighting/code_folding_color = Color(1, 1, 1, 0.27)
text_editor/theme/highlighting/search_result_color = Color(1, 1, 1, 0.07)
asset_library/available_urls = {
"godotengine.org (Official)": "https://godotengine.org/asset-library/api"
}
asset_library/use_threads = true
export/android/java_sdk_path = ""
export/android/android_sdk_path = ""
export/android/debug_keystore = "/Users/tamako/Library/Application Support/Godot/keystores/debug.keystore"
export/android/debug_keystore_user = "androiddebugkey"
export/android/debug_keystore_pass = "android"
export/android/force_system_user = false
export/android/shutdown_adb_on_exit = true
export/android/one_click_deploy_clear_previous_install = false
export/android/use_wifi_for_remote_debug = false
export/android/wifi_remote_debug_host = "localhost"
export/ios/ios_deploy = ""
export/macos/rcodesign = ""
export/web/http_host = "localhost"
export/web/http_port = 8060
export/web/use_tls = false
export/web/tls_key = ""
export/web/tls_certificate = ""
export/windows/rcedit = ""
export/windows/osslsigncode = ""
export/windows/wine = ""
_default_feature_profile = ""
interface/editors/show_scene_tree_root_selection = true
interface/editors/derive_script_globals_by_name = true
docks/scene_tree/ask_before_deleting_related_animation_tracks = true
_use_favorites_root_selection = false
filesystem/file_server/port = 6010
filesystem/file_server/password = ""
editors/3d/manipulator_gizmo_size = 80
editors/3d/manipulator_gizmo_opacity = 0.9
editors/3d/navigation/show_viewport_rotation_gizmo = true
editors/3d/navigation/show_viewport_navigation_gizmo = false
text_editor/behavior/files/auto_reload_and_parse_scripts_on_save = true
text_editor/behavior/files/open_dominant_script_on_scene_change = false
text_editor/external/use_external_editor = false
text_editor/external/exec_path = ""
text_editor/script_list/script_temperature_enabled = true
text_editor/script_list/script_temperature_history_size = 15
text_editor/script_list/group_help_pages = true
text_editor/script_list/sort_scripts_by = 0
text_editor/script_list/list_script_names_as = 0
text_editor/external/exec_flags = "{file}"
version_control/username = ""
version_control/ssh_public_key_path = ""
version_control/ssh_private_key_path = ""
editors/bone_mapper/handle_colors/unset = Color(0.3, 0.3, 0.3, 1)
editors/bone_mapper/handle_colors/set = Color(0.1, 0.6, 0.25, 1)
editors/bone_mapper/handle_colors/missing = Color(0.8, 0.2, 0.8, 1)
editors/bone_mapper/handle_colors/error = Color(0.8, 0.2, 0.2, 1)
network/debug_adapter/remote_port = 6006
network/debug_adapter/request_timeout = 1000
network/debug_adapter/sync_breakpoints = false
editors/3d_gizmos/gizmo_settings/path3d_tilt_disk_size = 0.8
editors/3d_gizmos/gizmo_colors/path_tilt = Color(1, 1, 0.4, 0.9)
editors/3d_gizmos/gizmo_colors/skeleton = Color(1, 0.8, 0.4, 1)
editors/3d_gizmos/gizmo_colors/selected_bone = Color(0.8, 0.3, 0, 1)
editors/3d_gizmos/gizmo_settings/bone_axis_length = 0.1
editors/3d_gizmos/gizmo_settings/bone_shape = 1
editors/3d_gizmos/gizmo_colors/csg = Color(0, 0.4, 1, 0.15)
editors/grid_map/editor_side = 1
editors/grid_map/palette_min_width = 230
editors/grid_map/preview_size = 64
export/ssh/ssh = ""
export/ssh/scp = ""
network/language_server/remote_host = "127.0.0.1"
network/language_server/remote_port = 6005
network/language_server/enable_smart_resolve = true
network/language_server/show_native_symbols_in_editor = false
network/language_server/use_thread = false
network/language_server/poll_limit_usec = 100000
dotnet/editor/external_editor = 0
dotnet/editor/custom_exec_path = ""
dotnet/editor/custom_exec_path_args = ""
dotnet/build/verbosity_level = 2
dotnet/build/no_console_logging = false
dotnet/build/create_binary_log = false
dotnet/build/problems_layout = 1
text_editor/theme/highlighting/gdscript/function_definition_color = Color(0.4, 0.9, 1, 1)
text_editor/theme/highlighting/gdscript/global_function_color = Color(0.64, 0.64, 0.96, 1)
text_editor/theme/highlighting/gdscript/node_path_color = Color(0.72, 0.77, 0.49, 1)
text_editor/theme/highlighting/gdscript/node_reference_color = Color(0.39, 0.76, 0.35, 1)
text_editor/theme/highlighting/gdscript/annotation_color = Color(1, 0.7, 0.45, 1)
text_editor/theme/highlighting/gdscript/string_name_color = Color(1, 0.76, 0.65, 1)
text_editor/theme/highlighting/comment_markers/critical_color = Color(0.77, 0.35, 0.35, 1)
text_editor/theme/highlighting/comment_markers/warning_color = Color(0.72, 0.61, 0.48, 1)
text_editor/theme/highlighting/comment_markers/notice_color = Color(0.56, 0.67, 0.51, 1)
text_editor/theme/highlighting/comment_markers/critical_list = "ALERT,ATTENTION,CAUTION,CRITICAL,DANGER,SECURITY"
text_editor/theme/highlighting/comment_markers/warning_list = "BUG,DEPRECATED,FIXME,HACK,TASK,TBD,TODO,WARNING"
text_editor/theme/highlighting/comment_markers/notice_list = "INFO,NOTE,NOTICE,TEST,TESTING"
editors/3d_gizmos/gizmo_colors/camera = Color(0.8, 0.4, 0.8, 1)
editors/3d_gizmos/gizmo_colors/stream_player_3d = Color(0.4, 0.8, 1, 1)
editors/3d_gizmos/gizmo_colors/occluder = Color(0.8, 0.5, 1, 1)
editors/3d_gizmos/gizmo_colors/visibility_notifier = Color(0.8, 0.5, 0.7, 1)
editors/3d_gizmos/gizmo_colors/particles = Color(0.8, 0.7, 0.4, 1)
editors/3d_gizmos/gizmo_colors/particle_attractor = Color(1, 0.7, 0.5, 1)
editors/3d_gizmos/gizmo_colors/particle_collision = Color(0.5, 0.7, 1, 1)
editors/3d_gizmos/gizmo_colors/reflection_probe = Color(0.6, 1, 0.5, 1)
editors/3d_gizmos/gizmo_colors/decal = Color(0.6, 0.5, 1, 1)
editors/3d_gizmos/gizmo_colors/voxel_gi = Color(0.5, 1, 0.6, 1)
editors/3d_gizmos/gizmo_colors/lightmap_lines = Color(0.5, 0.6, 1, 1)
editors/3d_gizmos/gizmo_colors/lightprobe_lines = Color(0.5, 0.6, 1, 1)
editors/3d_gizmos/gizmo_colors/joint_body_a = Color(0.6, 0.8, 1, 1)
editors/3d_gizmos/gizmo_colors/joint_body_b = Color(0.6, 0.9, 1, 1)
editors/3d_gizmos/gizmo_colors/fog_volume = Color(0.5, 0.7, 1, 1)
shortcuts = [{
"name": "editor/clear_output",
"shortcuts": [SubResource("InputEventKey_4f7ym")]
}]

Additionally, I am a Chinese user, and when I open a project using Chinese, the number of errors exceeds 100,000. As I mentioned in my question, thousands of new errors are added after most operations such as saving, opening or switching any scene, and opening sub-windows like the settings.

Clip_2024-08-26_17-02-52

But when using English, there are only a few hundred lines of errors when opening the project, and occasionally a few hundred more errors will occur afterward, but none of these are as numerous as the errors in Chinese.

Clip_2024-08-26_17-01-45

akien-mga commented 2 months ago

CC @bruvzg

bruvzg commented 2 months ago

Can't reproduce it. Since it seems to fail to load some font, it might be related to an issue with a system fallback font.

TamakoT commented 2 months ago

Can't reproduce it. Since it seems to fail to load some font, it might be related to an issue with a system fallback font.

I remembered something; the night before this error occurred, I adjusted the theme in the editor settings. On the Mac, it doesn’t switch to the dark theme correctly automatically, so I turned off the option to follow the system theme and then toggled between different editor themes, ultimately choosing the Default theme. I didn’t open Godot again after that until the next day when I started Godot and the project was very slow to load, followed by a large number of these errors. I suspect that changing the theme might have caused this issue to happen.

CVSJason commented 1 month ago

Is this somehow related to something that macOS Sequoia update have changed? Godot 4.3 runs fine on my M2 MacBook with macOS Ventura installed, but once I updated my computer to macOS Sequoia, this problem occurred.

CVSJason commented 1 month ago

Wait. I have just restarted the engine and it had stopped reporting such errors. So strange.

Zireael07 commented 1 month ago

@18677664100 Please use English in this repo (even if it's Bing or Google Translate)

CVSJason commented 1 month ago

After a deep research, I think the problem is not with the engine, but probably with some system fonts from macOS 15, /System/Library/PrivateFrameworks/FontServices.framework/Versions/A/Resources/Reserved/PingFangUI.ttc for example. The font lacks the 'loca' table, and this makes it unable to be loaded with freetype library.

FYI, here's the stack trace when the editor tried to load the font:

    frame #0: 0x0000000106063d40 godot.macos.editor.dev.arm64.mono`tt_face_load_loca(face=0x000000013a043600, stream=0x0000600007b6f250) at ttpload.c:97:13
    frame #1: 0x0000000106048954 godot.macos.editor.dev.arm64.mono`tt_face_init(stream=0x0000600007b6f250, ttface=0x000000013a043600, face_index=0, num_params=0, params=0x0000000000000000) at ttobjs.c:738:17
    frame #2: 0x0000000105fe3c28 godot.macos.editor.dev.arm64.mono`open_face(driver=0x0000600003654a00, astream=0x000000016fdf2bf8, anexternal_stream="", face_index=0, num_params=0, params=0x0000000000000000, aface=0x000000016fdf2bf0) at ftobjs.c:1556:15
    frame #3: 0x0000000105fd7358 godot.macos.editor.dev.arm64.mono`ft_open_face_internal(library=0x00000001392a5720, args=0x000000016fdf3910, face_index=0, aface=0x000000013d156f50, test_mac_fonts='\x01') at ftobjs.c:2645:19
    frame #4: 0x0000000105fd79d8 godot.macos.editor.dev.arm64.mono`FT_Open_Face(library=0x00000001392a5720, args=0x000000016fdf3910, face_index=0, aface=0x000000013d156f50) at ftobjs.c:2518:12
    frame #5: 0x00000001015efbc0 godot.macos.editor.dev.arm64.mono`TextServerAdvanced::_ensure_cache_for_size(this=0x00000001398dfa10, p_font_data=0x000000013d15a140, p_size=0x000000016fdf3c78, r_cache_for_size=0x000000016fdf3c80) const at text_server_adv.cpp:1410:12
    frame #6: 0x00000001015ff0c8 godot.macos.editor.dev.arm64.mono`TextServerAdvanced::_font_has_char(this=0x00000001398dfa10, p_font_rid=0x000000016fdf3f40, p_char=30830) const at text_server_adv.cpp:3551:3
    frame #7: 0x000000010160b630 godot.macos.editor.dev.arm64.mono`TextServerAdvanced::_find_sys_font_for_text(this=0x00000001398dfa10, p_fdef=0x000000016fdf4a48, p_script_code=0x000000016fdf4a10, p_language=0x000060000ab1a170, p_text=0x000000016fdf4a08) at text_server_adv.cpp:5116:9
    frame #8: 0x000000010160f8ec godot.macos.editor.dev.arm64.mono`TextServerAdvanced::_shape_run(this=0x00000001398dfa10, p_sd=0x000000013cfd6d60, p_start=0, p_end=2, p_script=HB_SCRIPT_HAN, p_direction=HB_DIRECTION_LTR, p_fonts=TypedArray<RID> @ 0x000000016fdf4fa8, p_span=0, p_fb_index=1, p_prev_start=0, p_prev_end=2, p_prev_font=(_id = 0)) at text_server_adv.cpp:6021:8
    frame #9: 0x0000000101611d74 godot.macos.editor.dev.arm64.mono`TextServerAdvanced::_shape_run(this=0x00000001398dfa10, p_sd=0x000000013cfd6d60, p_start=0, p_end=2, p_script=HB_SCRIPT_HAN, p_direction=HB_DIRECTION_LTR, p_fonts=TypedArray<RID> @ 0x000000016fdf5670, p_span=0, p_fb_index=0, p_prev_start=0, p_prev_end=0, p_prev_font=(_id = 0)) at text_server_adv.cpp:6307:4
    frame #10: 0x00000001016133d0 godot.macos.editor.dev.arm64.mono`TextServerAdvanced::_shaped_text_shape(this=0x00000001398dfa10, p_shaped=0x000000013cfd6cf0) at text_server_adv.cpp:6520:8
    frame #11: 0x000000010160c964 godot.macos.editor.dev.arm64.mono`TextServerAdvanced::_shaped_text_update_breaks(this=0x00000001398dfa10, p_shaped=0x000000013cfd6cf0) at text_server_adv.cpp:5499:3
    frame #12: 0x000000010161d778 godot.macos.editor.dev.arm64.mono`TextServerAdvanced::shaped_text_update_breaks(this=0x00000001398dfa10, arg1=0x000000013cfd6cf0) at text_server_adv.h:953:2
    frame #13: 0x0000000104957580 godot.macos.editor.dev.arm64.mono`TextServer::shaped_text_get_line_breaks(this=0x00000001398dfa10, p_shaped=0x000000013cfd6cf0, p_width=-1, p_start=0, p_break_flags=(value = 17)) const at text_server.cpp:947:34
    frame #14: 0x0000000104ff49a4 godot.macos.editor.dev.arm64.mono`TextServerExtension::shaped_text_get_line_breaks(this=0x00000001398dfa10, p_shaped=0x000000013cfd6cf0, p_width=-1, p_start=0, p_break_flags=(value = 17)) const at text_server_extension.cpp:1264:21
    frame #15: 0x0000000104276f10 godot.macos.editor.dev.arm64.mono`TextParagraph::_shape_lines(this=0x000000013cfd6b00) at text_paragraph.cpp:197:39
    frame #16: 0x00000001042708d4 godot.macos.editor.dev.arm64.mono`TextParagraph::get_size(this=0x000000013cfd6b00) const at text_paragraph.cpp:555:37
    frame #17: 0x00000001031558fc godot.macos.editor.dev.arm64.mono`Button::get_minimum_size_for_text_and_icon(this=0x000000012b8fbe10, p_text=0x000000016fdf6558, p_icon=Ref<Texture2D> @ 0x000000016fdf6550) const at button.cpp:500:29
    frame #18: 0x0000000103155774 godot.macos.editor.dev.arm64.mono`Button::get_minimum_size(this=0x000000012b8fbe10) const at button.cpp:43:9
    frame #19: 0x0000000103293860 godot.macos.editor.dev.arm64.mono`Control::_update_minimum_size_cache(this=0x000000012b8fbe10) at control.cpp:1678:18
    frame #20: 0x0000000103293970 godot.macos.editor.dev.arm64.mono`Control::get_combined_minimum_size(this=0x000000012b8fbe10) const at control.cpp:1688:32
    frame #21: 0x000000010314e558 godot.macos.editor.dev.arm64.mono`BoxContainer::get_minimum_size(this=0x000000012b8f9e10) const at box_container.cpp:251:20
    frame #22: 0x0000000103293860 godot.macos.editor.dev.arm64.mono`Control::_update_minimum_size_cache(this=0x000000012b8f9e10) at control.cpp:1678:18
    frame #23: 0x0000000103293970 godot.macos.editor.dev.arm64.mono`Control::get_combined_minimum_size(this=0x000000012b8f9e10) const at control.cpp:1688:32
    frame #24: 0x00000001032d29ec godot.macos.editor.dev.arm64.mono`AcceptDialog::_get_contents_minimum_size(this=0x000000012b8f7410) const at dialogs.cpp:285:40
    frame #25: 0x00000001030e13d0 godot.macos.editor.dev.arm64.mono`Window::get_contents_minimum_size(this=0x000000012b8f7410) const at window.cpp:1958:9
    frame #26: 0x00000001030d5f68 godot.macos.editor.dev.arm64.mono`Window::get_clamped_minimum_size(this=0x000000012b8f7410) const at window.cpp:1967:22
    frame #27: 0x00000001030d5fd8 godot.macos.editor.dev.arm64.mono`Window::_update_window_size(this=0x000000012b8f7410) at window.cpp:1042:22
    frame #28: 0x00000001030d7eb0 godot.macos.editor.dev.arm64.mono`Window::set_min_size(this=0x000000012b8f7410, p_min_size=0x000000016fdf69d8) at window.cpp:484:2
    frame #29: 0x00000001032d5e3c godot.macos.editor.dev.arm64.mono`ConfirmationDialog::ConfirmationDialog(this=0x000000012b8f7410) at dialogs.cpp:484:2
    frame #30: 0x0000000101f83af4 godot.macos.editor.dev.arm64.mono`EditorCommandPalette::EditorCommandPalette(this=0x000000012b8f7410) at editor_command_palette.cpp:338:23
    frame #31: 0x0000000101f83a94 godot.macos.editor.dev.arm64.mono`EditorCommandPalette::EditorCommandPalette(this=0x000000012b8f7410) at editor_command_palette.cpp:338:46
    frame #32: 0x0000000101f83a44 godot.macos.editor.dev.arm64.mono`EditorCommandPalette::get_singleton() at editor_command_palette.cpp:333:15
    frame #33: 0x0000000101f843b4 godot.macos.editor.dev.arm64.mono`ED_SHORTCUT_AND_COMMAND(p_path=0x000000016fdfc038, p_name=0x000000016fdfc030, p_keycode=306184230, p_command_name=String @ 0x000000016fdfc018) at editor_command_palette.cpp:375:2
    frame #34: 0x000000010213355c godot.macos.editor.dev.arm64.mono`EditorNode::EditorNode(this=0x000000013a819010) at editor_node.cpp:7101:2
    frame #35: 0x0000000102141fb4 godot.macos.editor.dev.arm64.mono`EditorNode::EditorNode(this=0x000000013a819010) at editor_node.cpp:6676:26
    frame #36: 0x0000000100483038 godot.macos.editor.dev.arm64.mono`Main::start() at main.cpp:3964:18
    frame #37: 0x000000010043dcbc godot.macos.editor.dev.arm64.mono`main(argc=4, argv=0x000000016fdff150) at godot_main_macos.mm:81:9
    frame #38: 0x000000018a0fc274 dyld`start + 2840

I found a post about this problem (https://forums.developer.apple.com/forums/thread/759219). For now, the best way to avoid this problem may be to skip loading these corrupted font files.

JoyFYan commented 1 month ago

I solved this problem by download Pingfang font manually.

截屏2024-10-01 16 41 49

PingFang.ttc font file is missing in iOS 18.0

Mac升级macOS Sequoia系统后苹方字体丢失,无法在字体册下载

AdriaandeJongh commented 1 month ago

So... I have to install a font to make this error go away? 😓

CVSJason commented 1 month ago

It seems that Apple has fixed this problem in the latest macOS?

AdriaandeJongh commented 1 month ago

I'm on the latest version of macOS I can update to (Version 15.0 (24A335)) and still seeing this issue.

bruvzg commented 1 month ago

In the current version of macOS (15.0 - 24A335), PingFang font seems to work fine, but it's loading from /System/Library/AssetsV2/com_apple_MobileAsset_Font7/3419f2a427639ad8c8e139149a287865a90fa17e.asset/AssetData/PingFang.ttc, one in /System/Library/PrivateFrameworks/FontServices.framework/Versions/A/Resources/Reserved is still broken, but it seems to be never loaded as a system fallback (maybe it is if no other CJK fonts present).

CVSJason commented 1 month ago

I'm on the latest version of macOS I can update to (Version 15.0 (24A335)) and still seeing this issue.

How about the latest beta version? (24B5055e)

CVSJason commented 1 month ago

Fine. There's still no loca table in PingFangUI.ttc in the latest macOS beta. Maybe Godot somehow managed to skip these broken font files. I wonder if this is due to a change in the system.

bruvzg commented 1 month ago

Related upstream FreeType issue, seems like new PingFangUI is using undocumented hvgl table instead of loca, so they changed font to a new proprietary format, and it's unlikely it will be fixed in new OS updates.

Maybe Godot somehow managed to skip these broken font files

Done in https://github.com/godotengine/godot/pull/97693

akien-mga commented 1 month ago

I think we can close this then as worked around by #97693, and the actual issue with the PingFangUI font needs to be handled by FreeType or Apple.