Az NVIDIA is ráfekszik beépített függvényekre

  • (f)
  • (p)
Írta: Abu85 | 2016-08-04 11:48 | Forrás: PROHARDVER!

A vállalat régóta kínál lehetőséget bizonyos intrinsics függvények kihasználására, de eddig nem élvezett priorítást ezek használata.

Az idei év nyara annak ellenére izgalmas a PC-s GPU-piacon, hogy semmi érdemi bejelentés nem történt szoftveres fronton. Elérhetők az új API-k, így a legnagyobb fókuszt az új hardverek kapják, de a háttérben nagyon érdekes dolgok történnek. Többek között az AMD még a nyár elején beépítette a meghajtókba a GPUOpen Shader Intrinsic Functions gyűjtőnéven emlegetett shader kiterjesztéseket, amelyek DirectX 11, DirectX 12 és Vulkan API alatt használhatók ki. Sőt, a Doom Vulkan leképezője már épít is némelyik függvényre, amivel a GCN architektúrára épülő Radeonok komoly extra tempót nyernek.

Az NVIDIA is rendelkezik hasonló konstrukcióval, de ezek egy ideje csak be vannak építve a meghajtókba, és nagyjából eddig jutott el az egész, mivel a vállalat egyszerűen semmilyen leírást nem kínál az érdeklődők számára, hogy miképpen lehetne hatékonyan használni a shader intrinsics függvényeket. A változás azonban lassan megtörténik, ugyanis a vállalat egyrészt frissíti az eszközillesztőkbe épített támogatást, másrészt ha minimálisan is, de dokumentálják a kihasználhatóságot.

Az NVIDIA által biztosított shader intrinsics függvények DirectX 11 és DirectX 12 alatt az NVAPI-n keresztül működhetnek. Utóbbi frissülni fog, mivel a DirectX 12-höz más kiterjesztés kell, mint a DirectX 11-hez.

Az OpenGL alatt a támogatás nem változik, vagyis a már elérhető kiterjesztéseket kell igénybe venni, viszont Vulkan API-hoz is elérhetők a shader intrinsics függvénye, méghozzá a VK_NV_glsl_shader kiterjesztések keresztül, ami lehetővé teszi a GLSL shaderek direkt betöltését Vulkan alatt. Utóbbit azonban az NVIDIA csak kísérletezéshez ajánlja, mert egyáltalán nem egy fejlesztőbarát megoldásról van szó, ugyanis nem garantálja, hogy a programban szállított shader minden meghajtóval hibátlanul fog működni. A vállalat ezért később elérhetővé tesz pár SPIR-V kiterjesztést, ami már sokkal jobban illik a Vulkan API-hoz, és nem mellesleg a fejlesztői igényekhez.

Arra mindenképpen figyelni kell, hogy az NVIDIA kiterjesztéseihez egyáltalán nem jók a konzolra kifejlesztett és onnan áthozott shader kódok, vagyis ezeket csak az AMD kiterjesztéseivel lehet alkalmazni. A GeForce-okhoz alternatív, sok esetben jelentősen módosított kódot kell írni, és itt számításba kell venni a hardverek adottságait is. Ugyanakkor bizonyos függvények esetén ez nem olyan jelentős többletmunka, hogy ne legyen pár fejlesztő, akik ne vállalnák be némi extra sebességért. Pláne úgy, hogy most már az NVIDIA is megtette az első lépéseket az új lehetőségek használata felé.