Přeskočit na obsah
Magazín Chatujme.cz
Programování · čtení na 4 min

Khronos se ptal přes 400 vývojářů shaderů. Nejvíc jim vadí ladění a profilování

Konsorcium Khronos zveřejnilo výsledky průzkumu mezi lidmi, kteří píšou shadery. Ladění a profilování označilo za jeden ze tří největších problémů 53 procent z nich, tedy o patnáct procentních bodů víc než druhou položku v pořadí. Průzkum si konsorcium udělalo samo a jeho čísla nikdo nezávisle neověřoval.

Srovnání scény osvětlené v reálném čase a předem připraveným výpočtem
Táž scéna se světlem počítaným v reálném čase a s osvětlením připraveným předem. Rozdíl mezi nimi je práce, kterou odvede shader. Foto: Adamgmz, Wikimedia Commons (CC BY-SA 4.0)

Shader je krátký program, který běží na grafickém čipu – typicky rozhoduje o tom, jakou barvu bude mít každý jednotlivý bod na obrazovce, ale počítá se jím i geometrie nebo úloha, která s vykreslováním nesouvisí vůbec. Píšou ho lidé, kteří dělají hry, filmové efekty i vědecké vizualizace, a čísel o tom, co je na té práci nejtěžší, moc není. Konsorcium Khronos Group zveřejnilo 21. července zprávu, která se o to pokouší.

Khronos vydává grafické normy, mimo jiné Vulkan, OpenGL a formát glTF. Dotazník sbíral odpovědi od 16. června do 10. července 2026 a vyplnilo ho přes 400 lidí – grafických programátorů, vývojářů her a enginů, rendering inženýrů a autorů nástrojů.

Kdo odpovídal

Největší skupinou byli grafičtí programátoři (35 procent) a vývojáři her a herních enginů (29 procent). Zbytek tvořili rendering inženýři, autoři middlewaru a nástrojů, výzkumníci a techničtí výtvarníci.

Obor, ve kterém respondenti pracují, potvrzuje, kde se shadery používají nejvíc: hry uvedlo 79 procent. Vedle nich se objevil middleware a nástroje (26 procent), vědecká vizualizace (16 procent), průmyslová vizualizace, film a rozšířená realita.

Zajímavější je rozložení platforem. Windows používá 88 procent dotázaných, Linux 74 procent a macOS 35 procent. Sedmdesát čtyři procent u Linuxu je na obor, kde vládnou hry pro Windows, hodně – Khronos to sám v textu označuje za nápadné a vykládá si to jako známku toho, že velká část lidí píše shadery mimo hry, ve výpočtech a strojovém učení.

Ladění bolí nejvíc

Nejsilnější výsledek celého průzkumu je jednoznačný. Ladění a profilování shaderů zařadilo mezi tři největší problémy 53 procent respondentů, což je o víc než patnáct procentních bodů před druhou položkou v pořadí.

Khronos se ptal i na míru: jak bolestivé je dnes ladění a profilování na cílových platformách, na stupnici od nuly („naprosto v pohodě“) do sta („denní noční můra“). Průměr vyšel 52. Rozložení je ale vychýlené nahoru – nejobsazenější je pásmo 61 až 80, které označilo 31 procent lidí, a spolu s pásmem nad 80 dalo hodnocení v horní části stupnice 40 procent dotázaných. Přesně sto, tedy maximum, zvolilo třináct lidí.

Proč zrovna ladění, zpráva nerozebírá. Podle nás za tím stojí povaha úlohy: shader běží na grafickém čipu po tisících kopií naráz a klasické nástroje na krokování programu se na něj špatně roubují. Když se výsledek na obrazovce liší od očekávání, vývojář často nemá jak zjistit, která z těch kopií a v jaké chvíli spočítala něco jiného.

Přenášení mezi platformami

Druhý opakovaný problém je přenositelnost. Nějaké úsilí na přizpůsobování shaderů mezi platformami, rozhraními nebo nástroji vynakládá 64 procent dotázaných. Skoro desetina to popsala jako významný náklad, nebo dokonce jako jednu z největších inženýrských položek vůbec.

Ve volných odpovědích se podle Khronosu opakovala poptávka po ukazatelích, volání funkcí a skutečné práci s adresami – tedy po tom, aby se jazyky pro grafické čipy chovaly spíš jako běžné systémové programovací jazyky.

Čím se dnes shadery píšou

Nejrozšířenější zůstává GLSL se 60 procenty, následuje HLSL se 41 procenty a SPIR-V, které přímo nebo přes nástroje používá 39 procent dotázaných. Čtvrtý skončil Slang s 34 procenty.

U Slangu je namístě jedna poznámka. Je to projekt, jehož repozitář vznikl v roce 2017; dřív patřil NVIDII a dnes ho pod otevřenou správou hostuje sám Khronos, jak uvádí stránky projektu – konsorcium tedy v tomto bodě měří rozšíření vlastního projektu. Neznamená to, že je číslo špatně; znamená to, že ho vydal ten, komu se hodí. Slang měl v době psaní článku na GitHubu necelých pět a půl tisíce hvězd a poslední změna v něm je stará hodiny.

Respondenti u jazyků zmiňovali, že by pomohla stabilnější překladač, lepší dokumentace a celkově příjemnější práce. To platí i pro Slang, u kterého Khronos tuhle zpětnou vazbu uvádí výslovně.

Co s tím chce Khronos dělat

Nejvýš hodnocenou možností byl společný standard pro ladění shaderů napříč výrobci – zájem o něj dostal 4,18 bodu z pěti. Ochotu zapojit se do budoucích pracovních skupin nebo připomínkových kol vyjádřilo 73 procent dotázaných.

Objevil se i návrh, aby konsorcium vzalo pod křídla další projekty: VCC/Shady, tedy překladač Clang pro Vulkan, a Rust-GPU, který má z Rustu udělat jazyk pro psaní shaderů. Část respondentů ale zároveň upozorňovala, že vedle nových věcí je potřeba dál zlepšovat nástroje, které už existují.

Co z čísel nevyplývá

Průzkum si zadalo, provedlo i vyhodnotilo jedno konsorcium a zveřejnilo ho na svém blogu. Odpovědi nesbíral nezávislý subjekt a surová data má k dispozici jen Khronos – členům je nabízí jako tabulku na vyžádání, veřejně je k dispozici zpráva se sedmnácti otázkami v PDF.

Vzorek navíc vznikl samovýběrem: odpovídal ten, kdo o dotazníku věděl a chtěl. Přes 400 lidí je na anketu v úzkém oboru slušné číslo, ale není to reprezentativní vzorek všech, kdo shadery píšou. Podle nás jsou proto použitelná spíš pořadí a velké odstupy – jako těch patnáct procentních bodů u ladění – než jednotlivá procenta na desetinu přesně.

Zdroje: zpráva Khronos Group o výsledcích průzkumu, stránky projektu Slang a repozitáře shader-slang/slangRust-GPU/rust-gpu.

Diskuse

Zatím tu nikdo nediskutuje. Můžete být první.

Napsat příspěvek

Diskutovat můžete i bez účtu. S registrací se ale příspěvek zveřejní hned a nemusíte pokaždé vyplňovat jméno. Účet už máte? Přihlaste se.

Nezveřejňujeme ho, slouží jen redakci.

Podporuje zápis Texy: **tučně**, *kurzíva*, odrážky, odkazy.

Dál k tématu

Programování

Linux neumí vytvořit a otevřít adresář jedním voláním. Návrh na změnu dělí vývojáře jádra

Kdo v Linuxu zakládá adresář a chce mu hned nastavit práva, musí to udělat na dva kroky. V mezeře mezi nimi mu ho může někdo vyměnit. Série záplat Joriho Koolstry chce tu mezeru zavřít tím, že vzkřísí kombinaci příznaků O_CREAT a O_DIRECTORY, kterou jádro tři roky odmítá s chybou. Správce vrstvy VFS je pro, dva vývojáři varují, že program nemá jak poznat, jestli mu novinku jádro nabízí.

Programování

Turso přepsal SQLite do Rustu, nad stejným jádrem teď staví Postgres. Zatím jen ze zdroje

Databázový projekt Turso, který vznikl jako přepis SQLite do jazyka Rust, oznámil 16. července, že nad stejným jádrem staví i Postgres. Autoři to popisují jako „LLVM databází“: jedno jádro a víc jazykových rozhraní nad ním. Hotová databáze to zatím není – balíčky ke stažení neexistují a oznámení samo mluví o základu, ne o hotovém produktu.

Programování

Pád ripgrepu ukazuje na chybu v jádře Linuxu. Model od OpenAI odmítl s laděním pomoct

Vývojář nahlásil 26. července, že ripgrep sestavený proti knihovně musl občas spadne při hledání v obřím stromu adresářů. O dva dny později zveřejnil analýzu, podle které za pádem stojí souběh ve správě paměti jádra Linuxu: vlákno přestane vidět bajt, který samo o deset instrukcí dřív zapsalo. Potvrzení od vývojářů jádra zatím není.