Gå til innhold

Zerfix

Medlemmer
  • Innlegg

    4
  • Ble med

  • Besøkte siden sist

Innlegg skrevet av Zerfix

  1.  

    så alle CPU begrensa spill kan få mer en 2x ytelse om de bare går over til OpenGL? Mantle kan ihvertfall teoretisk gi 2x ytelse, jeg synes ikke det høres lite ut. kan ikke så mye om OpenGL men Mantle skal ihvertal ha bedre multi-GPU støtte enn DirectX 11 i tilegg at man har større rom til å optimalisere

    Jeg vet ikke hvor du får 2x bedre ytelse fra, men det er en kjent sak at Mantles optimaliseringer hjelper mer til svakere CPUen er, dvs. det helper en AMD-APU mye mer enn en kraftig i5/i7. Når det gjelder den typen optimaliseringer som Mantle har så får Direct3D 12 det, og OpenGL har allerede tilsvarende. Dette er primært snakk om optimaliseringer som hjelper mest for svakere CPUer for alle tre APIene. Mantle gir altså ikke skaleringsfordeler oppover.

     

    På toppen av dette tilbyr OpenGL allerede flere optimaliseringer, deriblant bindless graphics og bindless textures som formidabelt kan hjelpe ytelsen med tung GPU-last med mange aktive objekter, slik som partikler (røyk, flammer, osv), vegetasjon eller andre mengder av enkeltobjekter på skjermen. Dette hjelper både trege og rasker CPUer ved at noen API-kall byttes ut med raskere API-kall, mens andre kuttes helt ut og logikken flyttes direkte over til GPUen.

    La meg ta et konkret eksempel for å forklare:

    La oss si jeg skal tegne en scene med 10.000 små busket i et terreng. Hver enkelt busk bruker én av 32 ulike buskteksturer. I konvensjonell rendring (OpenGL, Direct3D, osv.) må jeg for hver busk binde en tekstur til en texture unit (som igjen betyr at jeg reserverer en del av GPUens cache til teksturen).

    Dette betyr at jeg for hvert objekt kjører en "unødvendig" glBindTexture()-funksjon.

    Med bindless textures kan jeg på forhånd knytte tusenvis av teksturer til pekere som jeg senere kan hente direkte i shader-koden. Dermed kan jeg elegant hoppe over bindingen for hvert objekt, og legge til en liten kodesnutt inne i shader-koden som leser ut fra objektet hvilken av de 32 teksturene jeg skal bruke.

    I tillegg til at jeg nå har spart 10.000 kostbare API-kall, har vil jeg også oppnå en optimalisering på GPU-siden. Moderne GPUer har nemlig et intelligent cache-system som gjør at når jeg kjører koden vil den effektivt utnytte L2-cache til å laste de riktige teksturene fortløpende, i stedet for at cachen reserveres for én tekstur, og at denne dyttes ut og lastes på nytt for hvert bidige element som skal tegnes. Bindless graphics fungerer på tilsvarende måter for meshes.

     

    Problemet med bindless graphics og textures er driverstøtten. Bindless textures er allerede offisielt standardisert fungerer allerede med både Nvidia og AMD, mens AMD mangler en del på de øvrige bindless graphics-utvidelsene. Gevinsten av disse utvidelsene kan være over 50% ytelseøkning ved bruk av svært mange elementer.

     

    Dette ble kanskje noe teknisk, men det er bare å spørre om du vil vite mer.

     

    2x ytelse får jeg fra egene tester jeg gjorde lenge siden via en CPU orientert Mantle test med navn "Star Swarm Stress Test" som man kan finne på steam

     

    gjorde en ny test nå:

    CPU: AMD FX-8350

    GPU: AMD Radeon 7970

    Setting: Extreme

    Senario: RTS

    Timed Run

     

    gjennomsnittelig FPS med DirectX: 6.62

    gjennomsnittelig FPS med Mantle: 30.31

     

    det ble vist 5x ytelse, tviler litt på at man får se slike numere i GPU begrensa spill

  2.  

    Er ikke OpenGL mer relevant enn Mantle når det gjelder som et alternativ til DirectX?

    Ja OpenGL er mye mer relevant enn Mantle, siden OpenGL er allerede utbredt og har langt større forbedringer enn det Mantle tilbyr. OpenGL har allerede API-kall med lavere overhead, bla. multibind og rendering av flere meshes, har bindless graphics og direkteaksess til teksturer gjennom pekere i shadere som eliminerer API-kall, og har nå denne uken også standardisert direct state access som er videre med på å redusere overhead. Mantles forbedringer er minimale i sammenligning.

     

     

    De fleste moderne nettlesere har også fått støtte for hardware-akselerering av grafikk. Er dette basert på DirectX, eller er det noe simplere?

    WebGL er egentlig basert på et subsett av OpenGL ES 2.0 (som igjen er et subsett av OpenGL). WebGL-implementasjonen til IE11 bruker forøvrig også Direct3D, som er naturlig siden sentrale deler av OpenGL og Direct3D er svært likt.

     

    Det skal sies at ulike nettlesere bruker ulik grad av akselerasjon gjennom GDI for eldre IE, DirectX i nyere IE, og tilsvarende semi-akselerasjon i GTK for Firefox og delvis OpenGL for Chrome.

    så alle CPU begrensa spill kan få mer en 2x ytelse om de bare går over til OpenGL? Mantle kan ihvertfall teoretisk gi 2x ytelse, jeg synes ikke det høres lite ut. kan ikke så mye om OpenGL men Mantle skal ihvertal ha bedre multi-GPU støtte enn DirectX 11 i tilegg at man har større rom til å optimalisere

  3. Litt fel å porte HL2 fra 2004 inn i en motor som også er fra 2004 da :p HL2 er for øvrig ett av få spill som fortsatt ser bra ut i dag, og for å være helt ærlig så har utviklingen vert veldig liten siden den tiden. Med unntak av Cryengine og Frostbite (nest fysikk motoren her) så har de ikke blitt så mye penere i dag en de var den gangen. Dette kan selvfølgelig begrunnes med at forige generasjon med konsoller har holdt tilbake utviklingen da.

     

    Det som derimot representerer en betraktelig større forskjell er Black Mesa modden som er HL1 portet og gjennoppbygd i Source motoren. Her kan man virkelig snakke om store forskjeller. Det skal derimot bli interessant å se noen av de mange kickstarter prosjektene som ser ut til å flytte grensene innen grafikk. Forhåpentligvis vil dette føre utviklingen litt fremover.

     

    just my 2 cents anyway :p

     

    UE3 er fra slutten av 2006, tror du tenkte på UE2 som er fra 2004

×
×
  • Opprett ny...