Waarom je meer op een pc moet uitgeven om te gamen dan op een console

Je oude console van jaren geleden voert bepaalde games veel beter uit dan je nieuwere, modernere pc. Waarom gebeurt dit? Daarom laten we je kennismaken met het concept van Teken Oproep, dat heeft te maken met de slechte optimalisatie van computerspellen in vergelijking met andere systemen. En wat is de reden voor deze algemene trend?

Veel videogames zijn tegenwoordig een open wereld, dit betekent dat in plaats van een reeks onderdelen die we achtereenvolgens moeten overwinnen, we een uniforme kaart hebben waar verschillende dingen tegelijkertijd gebeuren. Als u alle elementen tegelijkertijd moet berekenen, zou de centrale processor verstikken. Dus de kaart, hoewel deze is verenigd, is verdeeld in kleine secties met een laadscherm waar of een filmische in het midden. Waardoor onze processor alleen kan laden wat zich in dat gebied bevindt en de rest van de elementen weggooit. Vaak zijn er echter optimalisaties, die niet goed zijn uitgevoerd.

Waarom je meer op een pc moet uitgeven om te spelen dan op een console

Wat is een Draw Call en hoe beïnvloedt dit de spelprestaties?

Het probleem is dat de CPU heeft geen visueel concept van wat wordt gezien en wat niet wordt gezien, het heeft gewoon een lijst met objecten die het moet oplossen van hun interactie met de rest van het ene frame naar het andere. Voor elk object op het podium wordt gedaan wat we a . noemen Teken oproep. Dat wil zeggen, gebruik een grafische API zoals DirectX, OpenGL of Vulkan zodat de grafische kaart het object op de scène tekent . Het genereren van game graphics begint dus altijd in de centrale processor.

Instanties Draw oproepbatches

Om de kosten te verlagen, is wat er vandaag gedaan wordt dat elke Draw Call verwijst naar "een groep polygonen die dezelfde eigenschappen delen". Hierdoor hoeven we, als we bijvoorbeeld het gras van een weiland moeten tekenen, geen telefoontje naar de GPU via API voor elk grassprietje, maar we kunnen het verenigen. Dit heet batches of verpakt in het Spaans. Het is logisch om ze in een enkele groep te verenigen, omdat het niet hetzelfde is om op meerdere zendingen achter elkaar te wachten waarbij de processor voor elk van hen moet stoppen en ze naar de GPU moet sturen, dan om een ​​enkele zending te maken en vergeet.

In de afbeelding in deze sectie kunnen we bijvoorbeeld een groot aantal ballen zien die dezelfde modellering gebruiken, maar verschillende kleuren. We kunnen elk van hen een oproep doen naar de grafische API, die allemaal een kleur heeft, of ze allemaal in één bericht groeperen.

Hoe beïnvloedt het gebruik van een grafische API of een andere?

Als een processor veel draw calls moet uitvoeren, dan is de beste oplossing om het werk over te nemen en te verdelen over meerdere cores. Dit is echter niet mogelijk, omdat de trekkingslijst die door de CPU is gemaakt er maar één is. Hoe de kostenoverschrijding te verminderen? Verwijder al die systeemaanroepen die onafhankelijk van het tekenen van scènes kunnen werken en plaats ze in aparte lijsten. Dit betekent dat ze door verschillende kernen kunnen worden gedragen. De weergavelijst zal echter altijd op dezelfde kernel draaien.

Asincrono Draw Call-API

Het feit dat grafische afbeeldingen en computers in twee verschillende delen worden gescheiden, is iets dat we hebben gezien in DirectX 12 en later en Vulkan. Als de game in DirectX 11-modus of eerder draait, of als alternatief in OpenGL. Dus de hoeveelheid Draw Call zal hoger zijn, hoewel veel ervan voor berekeningen zal zijn en niet voor grafische afbeeldingen. Op een simplistisch niveau zijn ze niets meer dan oproepen voor de grafische kaart om een ​​reeks berekeningen uit te voeren. Maar het is belangrijk om het aantal calls naar de grafiek te verminderen, aangezien, afhankelijk van het type systeem waarop het spel draait, de hoeveelheid Draw Call een probleem kan zijn voor de prestaties.

De Draw Call en de grafische kaart

Meestal is het de DMA-eenheid in de GPU die de weergavelijsten van het systeem kopieert RAM naar RAM (VRAM) van de grafische kaart met behulp van de PCI Express-interface. Met Resizable BAR kan de centrale processor echter het tegenovergestelde doen, door de gegevens rechtstreeks naar de grafiek te sturen. Het ideaal zou echter een uniform geheugenmodel zijn voor toegang, maar we hebben dit vandaag niet op pc of consoles.

Afmaken

Een van de dingen die de grafische kaart moet doen, is de zichtbaarheid van de objecten bepalen, dit betekent dat hij alle objecten moet elimineren die niet in dat frame te zien zijn. Dat wil zeggen: degenen die te ver weg zijn, die buiten de camera staan ​​of die worden bedekt door andere grotere objecten. De centrale processor weet niet of deze objecten al dan niet aan deze voorwaarden voldoen, hij weet alleen dat ze ter plaatse zijn en de GPU van de grafische kaart zal het afdankproces uitvoeren.

Waarom lijken games op pc minder geoptimaliseerd te zijn?

Als de framerate hoog genoeg is, hoeven de game-ontwikkelaars zich doorgaans geen zorgen te maken als het trekkingsnummer te hoog is. Dit is een probleem op pc, omdat de hardware voortdurend evolueert en de neiging heeft om te ontbreken aan optimalisatie. Op consoles is er een tendens om het aantal API-aanroepen te verminderen om de framesnelheid hoog en stabiel te houden.

gameplay resident evil 2 remake 4k 60 fps

Vreemd genoeg zijn de games die in dit opzicht het best zijn geoptimaliseerd, games as a service, hoewel ze niet allemaal zijn, de reden is dat ze zijn gebaseerd op het gratis laten spelen van mensen en worden gefinancierd door sporadische betalingen van hun gebruikers. Hiervoor is het uiterst belangrijk om een ​​zo groot mogelijk marktaandeel te hebben. Wat heeft geleid tot een dominantie van deze klasse van titels op de markt. Duidelijk en eenvoudig, het grootste deel van het publiek kan ze zonder problemen uitvoeren. Aan de andere kant hebben games met een hoge grafische belasting als gevolg van slechte optimalisatie op pc mogelijk twee keer zoveel stroom nodig als op console om dezelfde kwaliteit te bieden.

Dit is niet iets dat ook op pc gebeurt, omdat het kan zijn dat een studio die verantwoordelijk is voor het converteren van een game naar een specifieke console, in hetzelfde probleem van gebrek aan optimalisatie valt. Dus uiteindelijk is een groot deel van de schuld voor dat spel dat niet goed werkt op je computer, de mens en niet de hardware die je hebt.

Realiteit

Als de technische redenen eenmaal zijn uitgelegd, moeten we het hebben over de politici die veel meer invloed hebben dan je denkt. Consolefabrikanten hebben kwaliteitsafdelingen die games voor hun consoles testen en zien of ze goed werken. Wanneer een titel echter erg belangrijk is, leidt dit tot een race tegen de klok die zich vertaalt in dag 1-patches en zelfs rampen zoals Cyberpunk 2077.

Dat bestaat niet op pc, noch de Epic Store, noch Valve met Stoom een kwaliteitsproces hebben dat certificeert dat de spellen goed zijn geoptimaliseerd. Dat kunt u ook niet met de overvloed aan verschillende hardwareconfiguraties op de markt. Waarom zou je je zorgen maken dat de pc van vandaag een game niet goed zal draaien als dat van morgen wel het geval is?