arkan multi-gpu plan
- 1. Make sure all GPU stored / synthesized assets (FBOs, shaders, textures) can be read-back and reconstructed, test by destroying and rebuilding the GL context.
- 2. Break out all GL/EGL code to go via per-GPU populated vtables.
- 3. Add config options to reference GL library etc. per GPU, and priority/swap list for GPUs.
- 3. Test GPU- swapping by performing 1, switch backing GPU in 2.
- 4. Add affinity-tracking to all GPU backed store (bitmap of synched GPU)
- 5. Increase daily cocktail budget.
- 6. On new client-shm or compositor side buffers, murder vram by PBO+mirroring or lose some sanity by deferring the transfer to trigger ‘on-demand’ when the same
- object backing store is required on multiple GPUs.
- 7. Shader-compilation time, do that for all GPUs.
- 8. Test-case that performs the same scene graph on both GPUs, readback and pixel-pixel comparison.
- 9. Increase daily cocktail budget.
- 10. Add protocol paths to hint/bias GPU.
- 11. Repeat the same process on client side.
- 12. Enjoy the hollow fruits of having performed the equivalent of a 500m long 2km underground caving squeeze in a space filled with spiders. That nibble at your face.