Why not load all the data in a worker thread and then push it to the GPU in the main thread?