SABELA, O. Ladění GLSL [online]. Brno: Vysoké učení technické v Brně. Fakulta informačních technologií. 2025.
Zadání je velmi komplexní a značně složité. Student jej řešil velmi prezicně. Množství odvedené práce je velmi velké. Ač některé aspekty práce nejsou perfektní, neovlivní celkový pohled. Oceňuji studentovu snahu vytvořit práci, která je smysluplná a užitečná. Vzhledem k velké komplexnosti zadání a k obrovskému množství investovaného úsilí, hodnotím studentovu práci stupněm A (95 bodů).
Kritérium | Známka | Body | Slovní hodnocení |
---|---|---|---|
Informace k zadání | Student si vybral užitečné téma. Jeho obsahem je tvorba debuggeru pro grafické karty. Zadání je velmi obtížné. Student musel prorazit neprozkoumané cesty a navrhnout řešení velmi komplikovaných problémů. Snažil se své řešení udělat univerzální. | ||
Práce s literaturou | Student si dohledával vlastní zdroje informací. | ||
Aktivita během řešení, konzultace, komunikace | Student konzultoval spíše po velkých blocích a řídčeji. Na konzultacích ukázal velký posun v práci. | ||
Aktivita při dokončování | Student se snažil vytvořit velmi kvalitní práci. To vyžaduje vzhledem k obtížnosti zadání velmi mnoho času. Student ke konci práce ne úplně stíhal. Obsah práce byl konzultován. | ||
Publikační činnost, ocenění | Studentova práce má velký potenciál stát se základem pro ladění shaderů. Zároveň jsou jeho postřehy velmi užitečné a jsou zdokumentovány v technické dokumentaci. |
Silnou stránkou práce je složitost a náročnost vytvořeného software a nutnost porozumění i nízkoúrovňovým věcem, a to i na úrovni operačního systému. V tomto směru práce přesahuje rozměr standardní diplomové práce. Slabou stránkou je pak srozumitelnost textové části a také zatím pouze slabá využitelnost výsledku, neboť by bylo potřeba vyvinout ještě pokročilejší instrumentaci shaderů, aby bylo možné opravdu hovořit o ladění GLSL shaderů. Takto se jedná pouze o jakýsi prototyp a proof-of-concept, což i tak považuji za značný úspěch práce. Navrhuji hodnocení C-70 bodů .
Kritérium | Známka | Body | Slovní hodnocení |
---|---|---|---|
Náročnost zadání | Ladění shaderů vyžaduje nejen velmi dobrou znalost architektury grafického subsystému dnešních počítačů a zařízení, ale i poměrně detailní znalost funkce grafického procesoru. Vzhledem k paralelnímu zpracování jednotlivých výpočtových vláken považuji realizaci ladícího nástroje v takovém prostředí za značně obtížné zadání vyžadující značný um i znalosti. | ||
Rozsah splnění požadavků zadání | Zadání bylo splněno s dvěma drobnými výhradami: Nebylo vytvořeno demonstrační video, nebo to není z práce a odevzdaných souborů zřejmé, jak byl tento bod splněn. Místo toho bylo vytvořeno instruktážní video pro testery, což se ale nedá považovat za splnění tohoto bodu. V práci rovněž není dostatečně popsáno otestování výsledného řešení na více projektech. Nicméně zdrojové soubory nějaké testovací projekty obsahují a testeři rovněž pravděpodobně použili více různých projektů. | ||
Rozsah technické zprávy | |||
Prezentační úroveň technické zprávy | 65 | Úvod práce je čtivý a dobře napsaný. Od části návrhu a pak v části implementace na mnoha místech práce působí dojmem "odbočení" od tématu do popisu nějakého obrovského systému s mnoha funkčními bloky přičemž zadanému tématu "Ladění GLSL" se adekvátního prostoru poněkud nedostává. Myšlenka autora je dobrá - udělat dobrý abstraktní návrh, dobře rozšiřitelný a dobře navržený systém, ale práce je těžká na čtení a opravdovému tématu "Ladění GLSL" a nejužšímu designu kolem tohoto tématu není věnována tak detailní pozornost, jakou by si toto téma zasloužilo. Uživatelská přívětivost je sice součástí zadání (viz. bod 2), tedy nepřímo i uživatelské rozhraní, ale nemá takovou důležitost, jako samotné jádro, tedy proces ladění. Jak je ladění navrženo se tak dozvídáme až v samotném závěru v sekcích 5.4.2 a 5.5 na velmi omezeném prostoru. Podstatné principy jsou sice popsány i v předchozích sekcích, ale na jakési velmi abstraktní úrovni a vazba na konkrétní instrumentační principy se v nich často velmi ztrácí, nebo vyžaduje vícenásobné pročtení práce. Druhý důležitý princip - OpenGL library overriding - je pak popsáno dostatečně a zaslouží pochvalu za detailnost. Práce také při zavádění velkého množství bloků tyto bloky pojmenovává a celkově zavádí i mnoho zkratek a entit, které v některých případech ani nevysvětluje a není tak jasné, co znamenají. Jedná se například o Unobtrusive Commands (str. 39) či LSP messages (str. 41). Než je vysvětlovat bych se spíše přimlouval za jiný styl výkladu, který bude spíše orientován na vzhled a funkce výsledné aplikace, a pak i na záladní bloky, ze kterých je složena. V celé práci jsem například nenašel jediný screenshot vytvořené aplikace či screenshot průběhu ladění. Abych věci shrnul: Práce je velmi těžká na pochopení a místo abstraktního designu bych preferoval soustředit se více na to, co bylo opravdu vytvořeno. Popis konkrétního softwarového výsledku pak docela chybí, tedy pokud do něj nezapočítáváme popis návrhu. | |
Formální úprava technické zprávy | 70 | Práce je vhodně formátována s velkým množstvím textu a ne příliš mnoha obrázky. Text tak působí velmi "těžce" a černobíle. Vítaným zpestřením práce by bylo přidat více barevných obrázků. Z estetického pohledu práce působí tmavým spíše neatraktivním dojmem, což ale může být subjektivní. Na několika místech je text špatně formulován. Například: "The Deshader Library provides all contains Core functionality" (str. 37), což by odstranilo pozorné pročtení práce. Práce je psána dobrou angličtinou. | |
Práce s literaturou | 85 | Bibliografie obsahuje 42 položek. Z toho jsem napočítal 8 kvalitních vědeckých zdrojů. Zbytek je tvořen internetovými články, odkazy na dokumenty specifikací a dalšími online zdroji. Tyto zdroje jsou pak korektně citovány, a to především ve druhé a třetí kapitole. Práce se odkazuje navzájem mezi kapitolama, uvádí odkazy na obrázky a používá footnotes pro komentáře. | |
Realizační výstup | 75 | Realizační část má nadstandardní rozsah. Tvoří ji několik částí. Loader, který interceptuje OpenGL volání a přesměrovává je k dalšímu zpracování tímto projektem. Dále část starající se o instrumentaci shaderů. A nakonec GUI v podobě Visual Studio Code extension. Student prokázal nemálé programátorské schopnosti, sahající od nízkoúrovňového programování při přesměrovávání volání knihoven, přes grafické schopnosti při realizaci netriviálního systému instrumentace shaderů, až po vysokoúrovňové programování při vytváření modulu rozšíření pro Visual Studio Code. Slabší stránkou práce jsou pak samotné ladící schopnosti, které jsou realizovány pouze v omezené míře. | |
Využitelnost výsledků | Práce může sloužit jako jakýsi proof-of-concept. V současném stavu lze pouze krokovat a zastavovat na breakpointech. Pro opravdovou použitelnost by bylo potřeba umožnit prohlížení hodnot proměnných laděného shaderu nebo prohlížení hodnot zapisovaných do bufferů, a podobně. |
eVSKP id 164126