What are all the effects of changing VRAM?
-
I am running a pi 3b with retropie 4.2 installed however I am running a customized ES 2.1.4RP, 2.5 amp power supply. I currently have my memory split set at 320. I have a theme that is graphic heavy and works well with slide when i set my VRAM limit to 120, works seamlessly at 130. I have done a lot of reading regarding the VRAM and memory split and most everything I read says it is only for graphic heavy themes, that the roms/emulators use very little gpu and VRAM. Just wondering what other effects changing the VRAM to 120 or 130 may have? Thank you
-
@TMNTturtlguy https://github.com/RetroPie/RetroPie-Setup/wiki/Memory-Split
EDIT: oh you're talking about changing the VRAM limit in emulationstation? I guess you've discovered that it helps the slide on your theme when you raise it to 130. that will be all it does. that setting only effects ES.
(i don't know if ES frees that memory once a game is started, but it shouldn't matter in any case. the games don't really need much VRAM).
-
@dankcushions Thanks for the clarifications, yes you are correct that i am trying to run my custom theme with slide. Assuming that the VRAM is held by ES when games are started, that shouldn't effect most of what I am running, The only systems i am concerned with are N64 and Dreamcast. Those rely on V3D, does the VRAM being held by ES at 130 effect the V3D at all?
Also, i am running my memory split at 320, are there drawbacks to increasing this further? I know the positives, but if all the effects were positive, i would assume everyone would run at higher splits! Thanks for the information.
-
@TMNTturtlguy said in What are all the effects of changing VRAM?:
Those rely on V3D, does the VRAM being held by ES at 130 effect the V3D at all?
i think only if it holds on to it after the emulator has launched. you could check this via the commandline. see https://www.raspberrypi.org/forums/viewtopic.php?f=67&t=23185
then that memory would not be usable by the emulator. however, like i say these emulators don't really use much video memory anyway. again, you can check using the above command. last time i did it dreamcast and n64 were coming nowhere near the default split allocation.
Also, i am running my memory split at 320, are there drawbacks to increasing this further? I know the positives, but if all the effects were positive, i would assume everyone would run at higher splits! Thanks for the information.
no. there are no positives to increasing it over the default, never mind over 320MB. what uses more than the default (256MB) vram? it's all negative. by increasing the VRAM split you are reducing system ram. system ram IS regularly used in large amounts by things compiling, or maybe by the CD-based system emulators (psx), etc.
-
@dankcushions I thought the point of vram was to carry some of the weight off of main memory? Is vram stored in main memory on the pi instead of staying on secondary?
-
@NastyButtler322 said in What are all the effects of changing VRAM?:
@dankcushions I thought the point of vram was to carry some of the weight off of main memory? Is vram stored in main memory on the pi instead of staying on secondary?
vram setting in ES is different to that.
as for gpu memory split, the default memory split is plenty for our purposes.
-
@dankcushions So it designates a section of real memory for vram addressing to be used only for the themes? Only curious.
-
@NastyButtler322 not quite. To the best of my recollection from reading through that code for quite a while a few months ago, what's implemented in ES is a setting that sets a threshold of memory.
When that threshold is crossed, it will explicitly unload textures from memory in order to load new ones. I'm not sure it's as much VRAM in the normal sense of the word as it is a ES texture memory manager, though I can't say for sure as I didn't implement it.
That's why I have a suspicion that keeping it to high is as bad as having it too low, though I haven't been able to get anyone to test that. Too low means it won't have enough memory reserved to render all it needs to. Too high (I believe) will result in white screens if your Pi runs out of memory before the threshold is hit, as it won't unload textures to load new ones.
Edit: see VRAM mention here:
https://github.com/pjft/EmulationStation/blob/master/es-core/src/resources/TextureDataManager.cpp
The method to unload VRAM just deletes the texture from the GL texture manager. The method to remove from RAM deletes the actual texture data from memory.
https://github.com/pjft/EmulationStation/blob/master/es-core/src/resources/TextureData.cpp
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.