Hej drenge
Jeg har undret mig over, hvordan grafik-pipelinen egentlig fungerer. Jeg var så heldig at have en på arbejdet, som har arbejdet for Unity. Han kunne fortælle mig en del om det, men der er stadig ting, der undrer mig.
Ifølge ham, så forbereder CPUen næste frame. Derefter nedbryder grafikmotoren grafikken ned i draw-calls til driverlaget, som pumper draw calls via RAM til GPUen. Det foregår sådan, at når GPUen er igang med at tegne frame nummer X, så er CPUen igang med at forberede draw calls til frame nummer X+1.
Så skulle man jo tro, at så længe CPU+RAM bare er hurtig nok, så der altid er en stak draw calls klar til, når GPUen er færdig med sidste frame, at så er det fløjtende ligemeget om CPUen er Y% hurtigere. Hvis drawcalls i øvrigt bliver overført til GPUen imens den er igang med at tegne sidste frame, så burde system-RAMmen også være ligegyldig (hastigheden), så længe den er hurtig nok til at være klar til næste frame.
Ifølge tests på nettet, så lader det dog stadig til, at hvis man skruer op for CPUens hastighed, så stiger FPS (dog med diminishing returns), og det samme gælder RAM. Det er IKKE sådan, at man når en grænse for, hvor hurtig CPU/RAM behøver være, og derfra får man intet ud af det.
Er der nogen, der har sat sig ind i, hvordan 3d-motoren og driverlager spiller sammen? :-)
--
Jeg svarer kun til nøds på indlæg fra gæster...
--
Sidst redigeret 13-12-2018 09:55