Wat gebeurt er als je VRAM op raakt?

Pagina: 1
Acties:
  • 705 views

Acties:
  • 0 Henk 'm!

  • FooBarWidget
  • Registratie: September 2004
  • Laatst online: 12-09-2024
In het verlengde van deze topic wil ik graag weten wat er gebeurt als je VRAM op raakt. Wat gebeurt er als een game meer textures inlaadt dan in je VRAM past? Als je RAM vol is wordt je swap space aangesproken[1] maar bij VRAM Is dit naar mijn weten niet mogelijk, toch? Gooit de hardware dan een error of negeert ie de error? Gooit de API (OpenGL/DirectX) een error of negeren die de error en kun je als programmeur er nooit achter komen dat er iets mis is totdat er iets op het scherm getekend wordt? Is dit video hardware or driver afhankelijk? Hoe gaan game engines doorgaans om met out-of-VRAM errors?

Ik heb een videokaart met 512 MB VRAM en daar kan ik *net* Skyrim op draaien maar soms laden textures niet - je ziet dan bijvoorbeeld een NPC zonder gezicht. Is dit de schuld van Skyrim (omdat ze geen code hebben om om te gaan met out-of-VRAM condities) of de schuld van de hardware/driver (die de fout negeert en gewoon doorgaat)?

[1] Uitgegaan van een OS met virtual memory.

Acties:
  • 0 Henk 'm!

  • HMS
  • Registratie: Januari 2004
  • Laatst online: 07-07 21:06

HMS

Het meest logische lijkt me dat het dan in het gewone RAM komt, maar dat is mijn intuïtie.

Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 10-07 20:18
Je inschatting is wel correct; textures worden in de eerste plaats in het gewone werkgeheugen geladen en door de videodriver naar de videokaart gestuurd wanneer er iets mee moet gebeuren. Als er te weinig videogeheugen beschikbaar is wordt er dus inderdaad geswapt en holt de performance achteruit.

Waar je probleem in Skyrim vandaan komt weet ik niet precies; het zou kunnen dat het spel probeert te voorkomen dat het texturegeheugen vol raakt en dus een aantal textures überhaupt niet laadt. Ik weet eerlijk gezegd niet precies hoe zulke engines geïmplementeerd zijn; misschien gebruiken ze een meer low-level interface waarbij ze zelf kunnen managen welke textures in het videogeheugen geladen worden. Maar als je simpelweg de OpenGL API gebruikt, dan is het echt de video-driver die dit soort problemen oplost.

Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 22:44

Creepy

Tactical Espionage Splatterer

Hoe de game met een tekort aan videomemory omgaat, zal per game verschillen. Maar als je ergens geen textures ziet waar dat wel had moeten gebeuren is dat toch echt 9 van de 10 keer een fout van de game/engine.

Even los daarvan: ik zie zo 123 niet in wat dit topic in PRG doet. In PRG draait het om het zelf ontwikkelen en daar is hier geen sprake van. Elke game engine steekt weer anders in elkaar dus ook daar kunnen we weinig over zeggen.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Dit topic is gesloten.