@tombomino
Mezivirstva - driver - je snad otázka PC, kde není jasně dané jaký HW je za voláním API. Pokud mám ale jasně daný HW, tak tu mezivrstvu nepotřebuji. Příklad 8bit počítače nebo právě ty konzole, ty mají tu grafiku jednotnou, takže není třeba driver a API může volat přímo GPU tak jako by dělal ten driver - tím i odpoadají HW nároky na provoz driveru = vyšší efektivita.
Nicméně právě u low level API je možnost aby vývojář volal featury toho konkrétního HW. To je právě výhoda těhle API, umožní psát kód na míru HW a používat efektivně jejich možností.
Jako programátor vím že potřebuju zavolat funkci A, B a C GPU abych dosáhl toho co chci. Když použiju high level API, zavolám něco jako CALL_A_B_C a to API pak provolá ty funkce. Low level API pak bude CALL_A, CALL_B, CALL_C. Pokud ale vím že jiný vendor grafiky by pro tu samou věc uvítal víc volání v pořadí A, C a B, tak při použití high level API budu stále volat CALL_A_B_C protože CALL_A_C_B to api nemá, v low level ale mužu zavolat CALL_A, CALL_C, CALL_B a dosáhnu lepší efektivity pro daný HW.
pokud se tedy změní architektura GPU v konzoli a používám high level API, tak se to v API může interně přepsat BC na ACB a pro mě jako programátora se nic nemění. Pokud jsem ale psal pomocí low level API, tak ten kód, aby byl efektivní (nebo aby vůbec fungoval) musím přepsat sám protože to low level API řeší jednotlivá volání tak jak je po něm žádám