taisei/src/resource
Andrei Alexeyev ae8194ae78
Various fixes & improvements for concurrent loading (#235)
- RESF_UNSAFE is removed.
- Resources that don't have to be finalized on the main thread can load
completely asynchronously.
- A thread waiting for a concurrent task to complete can start executing
that task itself if it hasn't started yet.
- Refactor the resource loading interface, add support for load-time
dependencies.
- Main-thread finalization of asynchronously loaded resources is now
spread out across multiple frames to mitigate frametime spikes.
- Remove some archaisms from the resource management code.
- Fix potential hashtable synchronization issue.
- Fix some deadlock edge cases.
- Don't spawn more worker threads than there are CPU cores (degrades
performance).
- Add TAISEI_AGGRESSIVE_PRELOAD env variable to attempt to aggressively
discover and preload every possible resource.
- Make r_texture_fill{,_region} expect optimal pixmaps, so that it's
never forced to convert them on the main thread. The optimal format may
be queried with the new r_texture_optimal_pixmap_format_for_type API.
These functions will also no longer needlessly copy the entire image
into a staging buffer - previously they did this even if no conversion
was needed.
- Other random changes to facilitate the stuff above.

The overall effect is somewhat faster load times.

Of course it's still all terrible and full of lock contention because I
suck at concurrent programming, but it's not worse than it was.
Probably.
2020-06-09 03:01:53 +03:00
..
animation.c Various fixes & improvements for concurrent loading (#235) 2020-06-09 03:01:53 +03:00
animation.h Various fixes & improvements for concurrent loading (#235) 2020-06-09 03:01:53 +03:00
bgm.c Various fixes & improvements for concurrent loading (#235) 2020-06-09 03:01:53 +03:00
bgm.h make upkeep script preserve existing copyrights 2019-08-03 20:44:22 +03:00
bgm_metadata.c Various fixes & improvements for concurrent loading (#235) 2020-06-09 03:01:53 +03:00
bgm_metadata.h make upkeep script preserve existing copyrights 2019-08-03 20:44:22 +03:00
font.c Various fixes & improvements for concurrent loading (#235) 2020-06-09 03:01:53 +03:00
font.h Implement Robin Hood hashing (#200) 2020-03-17 10:09:49 +02:00
iqm.h Replace .obj models with .iqm (#232) 2020-06-06 18:27:08 +03:00
meson.build Add a basic music room 2019-03-11 01:21:43 +02:00
model.c Various fixes & improvements for concurrent loading (#235) 2020-06-09 03:01:53 +03:00
model.h Replace .obj models with .iqm (#232) 2020-06-06 18:27:08 +03:00
postprocess.c Various fixes & improvements for concurrent loading (#235) 2020-06-09 03:01:53 +03:00
postprocess.h Various fixes & improvements for concurrent loading (#235) 2020-06-09 03:01:53 +03:00
resource.c Various fixes & improvements for concurrent loading (#235) 2020-06-09 03:01:53 +03:00
resource.h Various fixes & improvements for concurrent loading (#235) 2020-06-09 03:01:53 +03:00
sfx.c Various fixes & improvements for concurrent loading (#235) 2020-06-09 03:01:53 +03:00
sfx.h make upkeep script preserve existing copyrights 2019-08-03 20:44:22 +03:00
sfxbgm_common.c make upkeep script preserve existing copyrights 2019-08-03 20:44:22 +03:00
sfxbgm_common.h make upkeep script preserve existing copyrights 2019-08-03 20:44:22 +03:00
shader_object.c Various fixes & improvements for concurrent loading (#235) 2020-06-09 03:01:53 +03:00
shader_object.h make upkeep script preserve existing copyrights 2019-08-03 20:44:22 +03:00
shader_program.c Various fixes & improvements for concurrent loading (#235) 2020-06-09 03:01:53 +03:00
shader_program.h make upkeep script preserve existing copyrights 2019-08-03 20:44:22 +03:00
sprite.c Various fixes & improvements for concurrent loading (#235) 2020-06-09 03:01:53 +03:00
sprite.h Various fixes & improvements for concurrent loading (#235) 2020-06-09 03:01:53 +03:00
texture.c Various fixes & improvements for concurrent loading (#235) 2020-06-09 03:01:53 +03:00
texture.h Implement Robin Hood hashing (#200) 2020-03-17 10:09:49 +02:00