Hirdetés

Keresés

Új hozzászólás Aktív témák

  • Abu85

    HÁZIGAZDA

    válasz huskydog17 #34830 üzenetére

    Csak ehhez mindenképpen kellene indirect draws/dispatches, mert ennek hiánya okozza az eséseket. Ugye ezzel az alkalmazás meghatározott számú rajzolási parancsot generálhat és futtathat a processzor beavatkozása nélkül. DX12-ben erre van az ExecuteIndirect, de DX11-ben ennek nincs semmilyen szabványos megfelelője, ami a processzorra sokkal nagyobb terhet ró. Az AGS-ben és az NVAPI-ban vannak megfelelő függvények, csak azokat nem használja a játék. Beépíteni sem hiszem, hogy beépítik, mert ezt így utólag eléggé necces megcsinálni. Egy rakás gyártóspecifikus kódot igényel, amit hetekig tart kitesztelni, arról nem is beszélve, hogy nem szabványos kódokról lenne szó, és az AMD, illetve az NV implementációja a DX11 kiterjesztés tekintetében különbözik. Gondolom ezért is állnak úgy hozzá, hogy ebből inkább nem kérnek, ott a DX12 a szabványos ExecuteIndirecttel. Alternatíva lehetne a Vulkan API, annak is van megfelelő, szabványos kiterjesztése (KHR_draw_indirect_count) erre.

    Az nagyon fontos, hogy bizonyos motorok azért gyorsak DX11-ben, mert eleve GPU-driven pipeline dizájnt használnak, illetve alkalmaznak indirect draws/dispatches metódusokat a gyártói kiterjesztéseken. Ezek nélkül például a Frostbite-ban vagy az AnvilNextben is kb. feleannyit tudna a DX11-es mód. A "csodákat" is főleg ezekhez teszi hozzá a meghajtó, nem igazán a szabványos kódokhoz.

Új hozzászólás Aktív témák

Hirdetés