Ladění GLSL
| but.committee | 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) | cs |
| but.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. | cs |
| but.jazyk | angličtina (English) | |
| but.program | Informační technologie a umělá inteligence | cs |
| but.result | práce byla úspěšně obhájena | cs |
| dc.contributor.advisor | Milet, Tomáš | en |
| dc.contributor.author | Sabela, Ondřej | en |
| dc.contributor.referee | Pečiva, Jan | en |
| dc.date.created | 2025 | cs |
| dc.description.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. | en |
| dc.description.abstract | 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. | cs |
| dc.description.mark | B | cs |
| dc.identifier.citation | SABELA, O. Ladění GLSL [online]. Brno: Vysoké učení technické v Brně. Fakulta informačních technologií. 2025. | cs |
| dc.identifier.other | 164126 | cs |
| dc.identifier.uri | http://hdl.handle.net/11012/255115 | |
| dc.language.iso | en | cs |
| dc.publisher | Vysoké učení technické v Brně. Fakulta informačních technologií | cs |
| dc.rights | Standardní licenční smlouva - přístup k plnému textu bez omezení | cs |
| dc.subject | sada nástrojů | en |
| dc.subject | shader | en |
| dc.subject | ladící program | en |
| dc.subject | krokování | en |
| dc.subject | přepisování kódu za běhu | en |
| dc.subject | GLSL | en |
| dc.subject | OpenGL | en |
| dc.subject | Vulkan | en |
| dc.subject | injekce | en |
| dc.subject | sdílená knihovna | en |
| dc.subject | instrumentace | en |
| dc.subject | Visual Studio Code. | en |
| dc.subject | toolkit | cs |
| dc.subject | shader | cs |
| dc.subject | debugger | cs |
| dc.subject | inspection | cs |
| dc.subject | step-through | cs |
| dc.subject | on-the-fly code rewriting | cs |
| dc.subject | GLSL | cs |
| dc.subject | OpenGL | cs |
| dc.subject | Vulkan | cs |
| dc.subject | interception | cs |
| dc.subject | interposition | cs |
| dc.subject | shared library | cs |
| dc.subject | instrumentation | cs |
| dc.subject | Visual Studio Code. | cs |
| dc.title | Ladění GLSL | en |
| dc.title.alternative | Tool for GLSL Shader Debugging | cs |
| dc.type | Text | cs |
| dc.type.driver | masterThesis | en |
| dc.type.evskp | diplomová práce | cs |
| dcterms.dateAccepted | 2025-06-26 | cs |
| dcterms.modified | 2025-06-26-11:57:22 | cs |
| eprints.affiliatedInstitution.faculty | Fakulta informačních technologií | cs |
| sync.item.dbid | 164126 | en |
| sync.item.dbtype | ZP | en |
| sync.item.insts | 2025.08.27 02:04:36 | en |
| sync.item.modts | 2025.08.26 20:20:50 | en |
| thesis.discipline | Počítačová grafika a interakce | cs |
| thesis.grantor | Vysoké učení technické v Brně. Fakulta informačních technologií. Ústav počítačové grafiky a multimédií | cs |
| thesis.level | Inženýrský | cs |
| thesis.name | Ing. | cs |
