Új DirectX kiterjesztések Haswell APU egységekhez

A két friss DirectX 11 bővítmény új lehetőségeket kínál a játékfejlesztők számára, de emellett a teljesítményre is jó hatást gyakorolhatnak.

Új DirectX kiterjesztések Haswell APU egységekhez

A Haswell APU egységek integrált videó vezérlőjével kapcsolatban egyre több adat érkezik: a héten például arra derült fény, hogy az egyes mobil APU egységek pontosan milyen Intel HD Graphics sorozatú videó vezérlőt alkalmaznak majd.

A Game Developers Conference alkalmával maga az Intel is szolgált némi újdonsággal, ugyanis a gyártó illetékesei beszéltek két új DirectX bővítményről, amelyek a Haswell APU egységek érkezésével válnak elérhetővé. Az egyik újítás a PixelSync nevet kapta, a másik pedig Instant Access névre hallgat. Lássuk, mit kínálnak az újítások!

PixelSync

A PixelSync egy hardveren és szoftveren alapuló megoldás, amellyel kiaknázhatóvá válnak az OIT (Order Independent Transparency - Sorrendtől Független Átlátszóság) eljárásban rejlő lehetőségek. Az OIT segítségével az átlátszó elemek gyorsan osztályozhatóak, így megfelelő sorrendben lehet őket lerenderelni, ami meglehetősen vonzó effektek létrehozását teszi lehetővé az egyes játékokban. OIT nélkül a játékfejlesztők lehetőségei limitáltak, ugyanis így csak meghatározott színpadfajtákat készíthetnek. Ez kemény problémát jelent, de megoldásával komoly lehetősége nyílnak a játékfejlesztés területén.

Annak ellenére, hogy az OIT eljárást általában a DirectX 11-es technológiához társítják, az mégsem minősül az API szolgáltatásának, pusztán egy olyan eljárásról van szó, amely a DirextX 11-es API segítségével engedélyezhető. Az Intel állítása szerint az OIT jelenlegi változatai határtalan mennyiségű memóriát és memória-sávszélességet igényelnek: a memória-sávszélesség igény a shader komplexitással négyzetesen skálázódik. Mivel a Haswell APU - és általában a többi IGP is - limitált memóriamennyiséggel, illetve memória-sávszélességgel gazdálkodik, így az Intelnek muszáj volt olyan megoldás találnia, amellyel kisebb memóriaterület és memória-sávszélesség alkalmazása mellett, hatékonyan implementálhatja az OIT eljárást.

A PixelSync esetében a hardveres oldal megteremtése mindössze annyiból állt, hogy a mérnökök egyszerűen engedélyezték a programozható blend műveleteket a Haswell APU esetében. A PC GPU architektúrák esetében az összes frame buffer művelet fix funkciós hardveren áramlik keresztül, méghozzá limitált rugalmasság mellett. Érdekes, de ez pont egy olyan terület, ahol a mobil GPU-k asztali társaik fölé kerekedtek: az Nvidia Tegra SoC egységeiben található GPU például felhasználja a pixel shader ALU-kat a frame buffer műveletek elvégzéséhez.

A Haswell APU esetében más a helyzet. Még mindig jelen vannak fix funkciójú renderelő egységek, viszont a Haswell már tartalmaz olyan hardverkomponenst is, amely lezárja és erőlteti azoknak a memória-hozzáféréseknek a sorba rendezését, amelyek a PixelSync bővítményhez kapcsolódnak. Azáltal, hogy a 3D-s renderelés egy kínosan párhuzamos problémává nőtte ki magát, az egymással fedésben lévő pixelterületeken dolgozó shaderműveletek esetében problémák jelentkezhetnek - jó példa erre az OIT algoritmus futtatása. A PixelSnyc lényege, hogy lehetővé teszi a szoftvernek, hogy az megmondja a hardvernek egy bizonyos kódrészlet esetében, hogy az azonos pixelterületen dolgozó shaderek feladatait rendezze szépen sorba, ne futtassa azokat egymással párhuzamosan. A sorba rendezés persze csak azoknál a pixeleknél lép érvénybe, amelyek átfedésben vannak egymással, úgyhogy a technológia a kód többi részét nem érinti, azaz a többi kód futása nem lassul. Ez a látszólag egyszerű megoldás lehetővé teszi a játékfejlesztők számára, hogy saját, egyedi frame buffer műveleteket készítsenek, ami új lehetőségek előtt nyit kaput.

A PixelSync szoftveres oldala az Intel saját OIT technológiájából ered, amely magas minőségű tömörítést használ annak érdekében, hogy az általa lefoglalt memóriaterület minél kisebb lehessen. Az algoritmus a működése miatt kiszámítható teljesítményt biztosít.

Az Intel állítása szerint a PixelSync technológiát két neves játékfejlesztő vállalat már biztosan alkalmazni fogja: az egyik a Codemasters, ami a GRID2-ben alkalmazza a PixelSync-et, a másik pedig a Creative Assembly, ami a Total War: Rome II esetében veti be az újítást.

InstantAccess

A második friss technológia az InstantAccess nevet kapta. Ez gyakorlatilag a Zero Copy eljárás inteles megfelelőjének tekinthető. Annak ellenére, hogy az Intel processzorokba ágyazott integrált videó vezérlői egy ideje már kínálnak egységes memóriatámogatást, amelynek keretén belül az IGP és a CPU ugyanahhoz a fizikai memóriaterülethez fér hozzá, a két egység mégsem rendelkezik közvetlen hozzáféréssel egymás memóriaterületeihez.

Amennyiben a GPU-nak olyasmivel kell dolgoznia, ami a CPU memóriaterületén található, akkor erről az adatról először másolatot kell készítenie saját memóriaterületére. A másolás folyamata időigényes és pazarló. Ahogy haladunk a valóban heterogén számítási rendszerek felé, úgy egyre inkább szükségessé válik, hogy mindkét processzor hozzáférhessen ugyanahhoz a memóriában tárolt adathoz.

Az InstantAccess segítségével az Intel grafikus eszközillesztő-szoftvere pointerrel jelölheti ki a GPU memóriaterületének azon részét, amelyhez a processzor közvetlenül is hozzáférhet. A CPU így gondtalanul dolgozhat a GPU-hoz tartozó memóriaterületen, és így elkerülhető a felesleges másolgatás és az abból fakadó teljesítménycsökkenés is. Amennyiben a CPU befejezte a feladatot, úgy a szóban forgó memóriaterületet ismét a GPU rendelkezésére bocsáthatja.

Az AMD is alkalmaz hasonló megoldást, ami még a Llano megjelenésével vált elérhetővé.

Tesztek

{{ i }}
arrow_backward arrow_forward
{{ content.commentCount }}

{{ content.title }}

{{ content.lead }}
{{ content.rate }} %
{{ content.title }}
{{ totalTranslation }}
{{ orderNumber }}
{{ showMoreLabelTranslation }}
A komment írásához előbb jelentkezz be!
Még nem érkeztek hozzászólások ehhez a cikkhez!
Segíts másoknak, mond el mit gondolsz a cikkről.
{{ showMoreCountLabel }}

Kapcsolódó cikkek

Magazin címlap arrow_forward