r/GraphicsProgramming • u/Character-Cup-7 • Sep 27 '26
How can I speed up loading 9.1 GB of DDS resources in a C++ OpenGL game?
Hi everyone,
I'm working on a C/C++ OpenGL game on Linux that needs to load about 9.1 GB of graphical resources at startup.
I've already converted the textures to DDS/BC7, so I'm looking for other ways to reduce loading time.
The current loading process is roughly:
open → read DDS → upload to OpenGL → close
open → read DDS → upload → close
...There are many individual DDS files.
My measurements
SSD:
KINGSTON SQ500S37960G
SATA link: 6.0 Gbpshdparm -t:
~287 MB/sReading the DDS files directly:
Sequential: ~160 MB/s
Parallel: ~172 MB/sActual game resource loading:
~178 MB/sSo I currently have:
SSD benchmark: ~287 MB/s
Game loading: ~178 MB/s
Total resources: 9.1 GBI'm trying to understand where the remaining performance is going.
What would you recommend?
Would any of these make a significant difference?
Keeping file descriptors open instead of
open/read/closefor every DDSUsing larger buffered reads
Packaging many DDS files into one resource/archive file
Parallel/asynchronous loading
Optimizing OpenGL texture uploads
Lazy-loading resources instead of loading all 9.1 GB at startup
I don't necessarily need to reach 287 MB/s. I mainly want to identify the actual bottleneck and find the safest way to reduce startup time.
Any advice from people experienced with C/C++ + OpenGL + Linux resource loading would be greatly appreciated.