Ladění GLSL

but.committeeprof. 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.defenceStudent 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.jazykangličtina (English)
but.programInformační technologie a umělá inteligencecs
but.resultpráce byla úspěšně obhájenacs
dc.contributor.advisorMilet, Tomášen
dc.contributor.authorSabela, Ondřejen
dc.contributor.refereePečiva, Janen
dc.date.created2025cs
dc.description.abstractTato 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.abstractTraditional 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.markBcs
dc.identifier.citationSABELA, O. Ladění GLSL [online]. Brno: Vysoké učení technické v Brně. Fakulta informačních technologií. 2025.cs
dc.identifier.other164126cs
dc.identifier.urihttp://hdl.handle.net/11012/255115
dc.language.isoencs
dc.publisherVysoké učení technické v Brně. Fakulta informačních technologiícs
dc.rightsStandardní licenční smlouva - přístup k plnému textu bez omezenícs
dc.subjectsada nástrojůen
dc.subjectshaderen
dc.subjectladící programen
dc.subjectkrokováníen
dc.subjectpřepisování kódu za běhuen
dc.subjectGLSLen
dc.subjectOpenGLen
dc.subjectVulkanen
dc.subjectinjekceen
dc.subjectsdílená knihovnaen
dc.subjectinstrumentaceen
dc.subjectVisual Studio Code.en
dc.subjecttoolkitcs
dc.subjectshadercs
dc.subjectdebuggercs
dc.subjectinspectioncs
dc.subjectstep-throughcs
dc.subjecton-the-fly code rewritingcs
dc.subjectGLSLcs
dc.subjectOpenGLcs
dc.subjectVulkancs
dc.subjectinterceptioncs
dc.subjectinterpositioncs
dc.subjectshared librarycs
dc.subjectinstrumentationcs
dc.subjectVisual Studio Code.cs
dc.titleLadění GLSLen
dc.title.alternativeTool for GLSL Shader Debuggingcs
dc.typeTextcs
dc.type.drivermasterThesisen
dc.type.evskpdiplomová prácecs
dcterms.dateAccepted2025-06-26cs
dcterms.modified2025-06-26-11:57:22cs
eprints.affiliatedInstitution.facultyFakulta informačních technologiícs
sync.item.dbid164126en
sync.item.dbtypeZPen
sync.item.insts2025.08.27 02:04:36en
sync.item.modts2025.08.26 20:20:50en
thesis.disciplinePočítačová grafika a interakcecs
thesis.grantorVysoké učení technické v Brně. Fakulta informačních technologií. Ústav počítačové grafiky a multimédiícs
thesis.levelInženýrskýcs
thesis.nameIng.cs

Files

Original bundle

Now showing 1 - 2 of 2
Loading...
Thumbnail Image
Name:
final-thesis.pdf
Size:
10.26 MB
Format:
Adobe Portable Document Format
Description:
file final-thesis.pdf
Loading...
Thumbnail Image
Name:
review_164126.html
Size:
13.35 KB
Format:
Hypertext Markup Language
Description:
file review_164126.html

Collections