godot/editor/import
Arseny Kapoulkine 260287b3a1 Rewrite index optimization code for maximum efficiency
While all the previous fixes to optimizeVertexCache invocation fixed the
vertex transform efficiency, the import code still was missing two
crucial recommendations from meshoptimizer documentation:

- All meshes should be optimized for vertex cache (this reorders
  vertices for maximum fetch efficiency)
- When LODs are used with a shared vertex buffer, the vertex order
  should be generated by doing a vertex fetch optimization on the
  concatenated index buffer from coarse to fine LODs; this maximizes
  fetch efficiency for coarse LODs

The last point is especially crucial for Mali GPUs; unlike other GPUs
where vertex order affects fetch efficiency but not shading, these GPUs
have various shading quirks (depending on the GPU generation) that
really require consecutive index ranges for each LOD, which requires the
second optimization mentioned above. However all of these also help
desktop GPUs and other mobile GPUs as well.

Because this optimization is "global" in the sense that it affects all
LODs and all vertex arrays in concert, I've taken this opportunity to
isolate all optimization code in this function and pull it out of
generate_lods and create_shadow_mesh; this doesn't change the vertex
cache efficiency, but makes the code cleaner. Consequently,
optimize_indices should be called after other functions like
create_shadow_mesh / generate_lods.

This required exposing meshopt_optimizeVertexFetchRemap; as a drive-by,
meshopt_simplifySloppy was never used so it's not exposed anymore - this
will simplify future meshopt upgrades if they end up changing the
function's interface.
2024-11-04 06:58:06 -08:00
..
3d Rewrite index optimization code for maximum efficiency 2024-11-04 06:58:06 -08:00
atlas_import_failed.xpm
audio_stream_import_settings.cpp Rename internal Button icon to button_icon to match exposed methods 2024-10-29 16:23:03 -07:00
audio_stream_import_settings.h Organize existing code for editor plugins 2024-04-27 11:59:58 -07:00
dynamic_font_import_settings.cpp Rename internal Button icon to button_icon to match exposed methods 2024-10-29 16:23:03 -07:00
dynamic_font_import_settings.h Rename ImportSettings dialogs to have "Dialog" in the name 2023-11-26 22:59:01 -06:00
editor_import_plugin.cpp Allow EditorImportPlugin to override can_import_threaded() 2024-01-09 17:30:24 +01:00
editor_import_plugin.h Allow EditorImportPlugin to override can_import_threaded() 2024-01-09 17:30:24 +01:00
resource_importer_bitmask.cpp One Copyright Update to rule them all 2023-01-05 13:25:55 +01:00
resource_importer_bitmask.h One Copyright Update to rule them all 2023-01-05 13:25:55 +01:00
resource_importer_bmfont.cpp [Import] Add "skip file" import option to skip (and exclude from export) importable formats, auto set it for the images used by bitmap font. 2024-03-12 21:34:40 +02:00
resource_importer_bmfont.h One Copyright Update to rule them all 2023-01-05 13:25:55 +01:00
resource_importer_csv_translation.cpp Split TranslationServer into its own file 2024-08-15 15:00:47 +08:00
resource_importer_csv_translation.h One Copyright Update to rule them all 2023-01-05 13:25:55 +01:00
resource_importer_dynamic_font.cpp [Font Import] Detect pixel fonts and disable subpixel positioning. 2024-07-23 20:34:39 +03:00
resource_importer_dynamic_font.h One Copyright Update to rule them all 2023-01-05 13:25:55 +01:00
resource_importer_image.cpp One Copyright Update to rule them all 2023-01-05 13:25:55 +01:00
resource_importer_image.h One Copyright Update to rule them all 2023-01-05 13:25:55 +01:00
resource_importer_imagefont.cpp [ImageFont] Fix escape sequence parsing, add note to the docs. 2024-08-16 15:48:56 +03:00
resource_importer_imagefont.h [Font] Allow overriding advances, offsets and kerning in the ImageFont import settings. Fix bitmap font kerning override. 2024-02-13 18:49:47 +02:00
resource_importer_layered_texture.cpp Merge pull request #97582 from BlueCube3310/basisu-hdr 2024-10-14 14:09:57 -05:00
resource_importer_layered_texture.h Fix slow editor load on large projects (v2) 2024-09-25 17:36:39 -04:00
resource_importer_shader_file.cpp Merge pull request #92539 from RandomShaper/no_crash_glsl_headless 2024-05-30 15:41:59 +02:00
resource_importer_shader_file.h One Copyright Update to rule them all 2023-01-05 13:25:55 +01:00
resource_importer_texture_atlas.cpp Allow configuring the maximum width for atlas import 2024-02-13 10:30:44 +01:00
resource_importer_texture_atlas.h One Copyright Update to rule them all 2023-01-05 13:25:55 +01:00
resource_importer_texture_settings.cpp Check if the required texture format is imported in the export dialog 2023-06-20 10:58:34 -05:00
resource_importer_texture_settings.h Check if the required texture format is imported in the export dialog 2023-06-20 10:58:34 -05:00
resource_importer_texture.cpp Merge pull request #97582 from BlueCube3310/basisu-hdr 2024-10-14 14:09:57 -05:00
resource_importer_texture.h Fix slow editor load on large projects (v2) 2024-09-25 17:36:39 -04:00
resource_importer_wav.cpp No freezing when size in header is too large 2024-10-23 16:53:10 +02:00
resource_importer_wav.h One Copyright Update to rule them all 2023-01-05 13:25:55 +01:00
SCsub SCons: Add unobtrusive type hints in SCons files 2024-09-25 09:34:35 -05:00