Ladění GLSL

Loading...
Thumbnail Image
Date
Authors
Sabela, Ondřej
ORCID
Mark
B
Journal Title
Journal ISSN
Volume Title
Publisher
Vysoké učení technické v Brně. Fakulta informačních technologií
Abstract
Tato práce představuje flexibilní hardware-agnostický nástroj pro ladění programů vykonávaných grafickým procesorem, tzv. shaderů. Cílem je vytvořit prostředí podobné tradičním ladícím nástrojům, nabídnout známé funkce, jako je krokování programu a výpis proměnných, ale také pokročilé funkce pro inspekci grafické pipeline a hybridní (fyzický i virtuální) souborový systém pro správu zdrojových kódu. Motivací je nejen absence podobného nástroje pro OpenGL, ale také přínosy, které tyto nástroje poskytují při vývoji tradičních programů - hluboký vhled do jejich vykovávání a stavu v reálném čase. Text práce popisuje princip injekce ladící vrstvy mezi aplikaci a grafickou knihovnu, návrh flexibilní rozšířítelné platformy pro implementaci instrumentace (přepisování) kódu shaderů v reálnem čáse a pojednává o klíčových vlastnostech grafického hardware, komponent operačních systémů, vysoko- a nízko-úrovňových jazyků pro psaní shaderů. Výsledkem je soběstačná knihovna a sada programů poskytujících intuitivní rozhraní pro připojení k laděnému programu, a grafické rozhraní k ovládání ladícího programu ve formě rozšíření pro Visual Studio Code.
Traditional source-level debuggers offer invaluable insights into program execution and state in real time. However, graphics processor programs - shaders - and particularly OpenGL lack a tool that provides such a workflow. This work presents a flexible, hardware-agnostic solution to fill this gap. The goal is to support familiar features like step-through debugging and variable watching, along with advanced features like graphics pipeline inspection and a hybrid (both physical and virtual) file system for managing source codes. This thesis describes the employed shared library hooking mechanism to inject a debug layer between the graphics API and the target application. It also details the implementation of transparent on-the-fly shader recompilation and instrumentation platform, as well as the communication interfaces and protocols utilized. Additionally, the thesis discusses key design considerations across hardware, libraries, both high- and low-level shading languages and operating system components. The resulting toolkit comprises a standalone library and applications for attaching to the target application, along with an extension for controlling the debugger from Visual Studio Code, enhancing the debugging experience for shader developers.
Description
Citation
SABELA, O. Ladění GLSL [online]. Brno: Vysoké učení technické v Brně. Fakulta informačních technologií. 2025.
Document type
Document version
Date of access to the full text
Language of document
en
Study field
Počítačová grafika a interakce
Comittee
prof. Dr. Ing. Pavel Zemčík, dr. h. c. (předseda) prof. Ing. Adam Herout, Ph.D. (člen) prof. RNDr. Alexandr Meduna, CSc. (člen) doc. Ing. Michal Španěl, Ph.D. (člen) doc. Ing. Martin Čadík, Ph.D. (člen) Ing. David Bařina, Ph.D. (člen)
Date of acceptance
2025-06-26
Defence
Student nejprve prezentoval výsledky, kterých dosáhl v rámci své práce. Komise se poté seznámila s hodnocením vedoucího a posudkem oponenta práce. Student následně odpověděl na otázku oponenta a na další otázky přítomných, např. ohledně problémů v případě složitějšího shaderu či doby kompilace shaderu. Komise se na základě posudku oponenta, hodnocení vedoucího, přednesené prezentace a odpovědí studenta na položené otázky rozhodla práci hodnotit stupněm B - velmi dobře.
Result of defence
práce byla úspěšně obhájena
Document licence
Standardní licenční smlouva - přístup k plnému textu bez omezení
DOI
Collections
Citace PRO