This takes state of soc-2020-io-performance branch as it was at
e9bbfd0c8c (2021 Oct 31), merges latest master (2022 Apr 4),
adds a bunch of tests, and fixes a bunch of stuff found by said
tests. The fixes are detailed in the differential.
Timings on my machine (Windows, VS2022 release build, AMD Ryzen
5950X 32 threads):
- Rungholt minecraft level (269MB file, 1 mesh): 54.2s -> 14.2s
(memory usage: 7.0GB -> 1.9GB).
- Blender 3.0 splash scene: "I waited for 90 minutes and gave up"
-> 109s. Now, this time is not great, but at least 20% of the
time is spent assigning unique names for the imported objects
(the scene has 24 thousand objects). This is not specific to obj
importer, but rather a general issue across blender overall.
Test suite file updates done in Subversion tests repository.
Reviewed By: @howardt, @sybren
Differential Revision: https://developer.blender.org/D13958
64 lines
1.4 KiB
C
64 lines
1.4 KiB
C
/* SPDX-License-Identifier: GPL-2.0-or-later
|
|
* Copyright 2008 Blender Foundation. All rights reserved. */
|
|
|
|
/** \file
|
|
* \ingroup collada
|
|
*/
|
|
|
|
#include "io_ops.h" /* own include */
|
|
|
|
#include "WM_api.h"
|
|
|
|
#ifdef WITH_COLLADA
|
|
# include "io_collada.h"
|
|
#endif
|
|
|
|
#ifdef WITH_ALEMBIC
|
|
# include "io_alembic.h"
|
|
#endif
|
|
|
|
#ifdef WITH_USD
|
|
# include "io_usd.h"
|
|
#endif
|
|
|
|
#include "io_cache.h"
|
|
#include "io_gpencil.h"
|
|
#include "io_obj.h"
|
|
|
|
void ED_operatortypes_io(void)
|
|
{
|
|
#ifdef WITH_COLLADA
|
|
/* Collada operators: */
|
|
WM_operatortype_append(WM_OT_collada_export);
|
|
WM_operatortype_append(WM_OT_collada_import);
|
|
#endif
|
|
#ifdef WITH_ALEMBIC
|
|
WM_operatortype_append(WM_OT_alembic_import);
|
|
WM_operatortype_append(WM_OT_alembic_export);
|
|
#endif
|
|
#ifdef WITH_USD
|
|
WM_operatortype_append(WM_OT_usd_import);
|
|
WM_operatortype_append(WM_OT_usd_export);
|
|
#endif
|
|
|
|
WM_operatortype_append(WM_OT_gpencil_import_svg);
|
|
|
|
#ifdef WITH_PUGIXML
|
|
WM_operatortype_append(WM_OT_gpencil_export_svg);
|
|
#endif
|
|
|
|
#ifdef WITH_HARU
|
|
WM_operatortype_append(WM_OT_gpencil_export_pdf);
|
|
#endif
|
|
|
|
WM_operatortype_append(CACHEFILE_OT_open);
|
|
WM_operatortype_append(CACHEFILE_OT_reload);
|
|
|
|
WM_operatortype_append(CACHEFILE_OT_layer_add);
|
|
WM_operatortype_append(CACHEFILE_OT_layer_remove);
|
|
WM_operatortype_append(CACHEFILE_OT_layer_move);
|
|
|
|
WM_operatortype_append(WM_OT_obj_export);
|
|
WM_operatortype_append(WM_OT_obj_import);
|
|
}
|