Megoldások a GPU-memória menedzselésére egy Direct3D 12 alapú grafikus motorban

OData támogatás
Konzulens:
Dr. Szécsi László
Irányítástechnika és Informatika Tanszék

Ez a szakdolgozat két lényegi részből áll. Az első rész egy tömör összefoglalást ad a Direct3D 12-ről, bemutatva az API alapvető elemeit a lehető legvilágosabb módon. Ez a rész tartalmazza leírását a „command list”-eknek, a „command queue”-knak, a „fence”-eknek, annak, hogy a különböző memória objektum típusok hogyan képeződnek fizikai memóriára, a „resource heap”-eknek, annak, hogy egy memória objektumot hogyan lehet árnyaló program bemenetére, vagy kimenetére kötni (bindelni), és annak, hogy a grafikus csővezeték állapota hogyan állítható. A második rész a különböző GPU memória menedzsmenttel kapcsolatos kihívásokra fókuszál, melyek a Direct3D 12 használata során felmerülnek. Minden szekció egy, vagy több megoldást kínál. Ez a rész bemutatja az adat feltöltést, az egy-képkocka élettartamú adatok menedzselését, a memória objektumok lapozását, hogy megelőzzük a GPU memória kimerítését, a „resource heap”-ek kezelését, hogy egy rugalmas objektum bindelési megoldást valósíthassunk meg, és a „resource barrier”-ek elhelyezésének optimalizálását, hogy maximalizáljuk a teljesítményt. Az implementációkat részletező szakaszok megmutatják, hogyan illeszkednek be a megoldások egy egyedi tervezésű, valós felhasználásra készített grafikus motorba. Bár a szakdolgozat a D3D 12 köré épül, a különböző témák, melyeket a dolgozat vitat, a másik domináns grafikus API, a Vulkan szempontjából is lényegesek. A dolgozat feltételezi, hogy az olvasó ért egy OpenGL 3-hoz hasonló mai magas szintű grafikus API-hoz.

A dolgozat angol nyelvű.

Letölthető fájlok

A témához tartozó fájlokat csak bejelentkezett felhasználók tölthetik le.