Streaming framework for graphics applications
Overview
Many modern graphics applications like Google Earth or games like World of Warcraft require data sets with sizes which exceed the available GPU memory, and sometimes even the host memory. In this case, streaming from (slow) storage devices is required to load and unload the data on-demand. However, the fact that the GPU runs asynchronously compared to the CPU makes efficient streaming a challenge, especially if GPU stalls should be avoided.
Goal
The goal of this project is to implement an efficient streaming framework for texture and optionally geometry data. It should focus on the complete load pipeline, that is, it should span everything from the on-disk layout over the caching layers to the GPU memory management. The framework should be evaluated primarily for terrain texture data in a virtual texture mapping based environment.
Requirements
- C/C++ knowledge
- Experience with DirectX 10 (or later)
- Experience with multi-threading
Desired skills and pluses
- Scripting language experience (like Python, Lua, Ruby)
- Experience with Intel Threading Building Blocks, OpenMP, Boost.Threads
Supervisors
Matthäus G. Chajdas (TUM, chajdas(at)tum.de)