Game VRAM usage & GPU workload are the same at 1080p & 360p - why don't they get reduced?

Hey folks,
my goal is to optimize a game containing a very simple scene with one MetaHuman. I want to run several instances of the packaged game on a Cloud Server GPU and pixelstream the rendered results from there. Rendering the game at 720p or 480p is enough for my use case and I would like to optimize everything so that I can run as many game instances as possible per Cloud GPU to keep costs low.

My Problem:
Currently, I can’t get the packaged game to use less than 1,6 GB VRAM and to reduce GPU workload significantly no matter how low I set the rendering resolution.

What I expected:
GPU and VRAM workload would keep dropping, the further I reduce the resolution.
Since 1080p renders 9x times the amount of pixels as for example 360p, I would have expected the 360p VRAM usage and GPU workload to end up somewhere at around 10-20% of what they are at 1080p.

What I’ve measured:
However, reducing the resolution below 1080p seems to have almost no effect on the GPU and VRAM workload of the packaged game:

  • VRAM usage at 360p is still at 90% of what it is at 1080p
  • GPU workload at 360p is still at 93% of what it is at 1080p
  • VRAM usage and GPU workload increase significantly from 1080p to 2160p (as expected)

@1080p

@360p
Screenshot 2023-08-30 183105

RESULTS for my simple MetaHuman game .exe:


@1080p

@360p
Screenshot 2023-08-31 103954

RESULTS for First Person Shooter UE 5.2 template game .exe:


(Remeasured and updated)

As you can see, I have managed to replicated this (from my perspective unexpected) VRAM usage and GPU workload by packacking the default First Person Shooter UE 5.2 template and running it at different resolutions.


??? My questions ???

  1. Does anyone experience this VRAM usage and GPU workload plateaus on lower resolutions as well?
  2. Does anyone have specific recommendations on reducing VRAM usage and GPU workload for low resolution games rendered at around 480p or 720p? (I have already tested a few things, see list below)

Much appreciated if somebody could share some valuable wisdom & advice :slight_smile: Thank you!!!e

A FEW MORE DETAILS:

What I’ve already done to reduce VRAM usage and GPU workload:

  • Reduced all texture sizes (to a max of 1024x1024 via Asset Actions → Bulk Edit via Property Matrix)) → quite nice impact on RenderTM2D, but very low overall
  • Baked lighting (Dynamic Global Illumination Method: None; Reflection Method: Screen Space; Shadow Map Method: Shadow Maps) → had a big impact on reducing VRAM & GPU usage
  • Raytracing: off
  • Created and imported a copy of the Aoi MetaHuman in low quality (can only be imported in “low quality” when recreated and added to one owns collection of MetaHumans)
  • MetaHuman is forced to LOD1 (LODSync → Forced LOD: 1) (I’d love to keep the hair strains, so LOD2 is not an option at the moment)
  • Tried to throw out the unnecessary LODs of my MetaHuman → Unfortunately, no matter which approach or tutorial I followed: My MetaHuman keept constantly breaking apart (ending up not being rendered anymore) whenever I tried to delete all unused LOD components.
  • Turned off post processing
  • Using Simple camera instead of cinematic camera (no bloom, no depth of field or other perfromance costly settings)
  • Changed quality settings: View distance quality: low; shadow quality: high; Anti-Aliasing quality: low; Texture quality: medium; Visual Effects quality: low; post processing quality: low; Foliage quality: low; shading quality: low; ( I tested these In game and took screenshots with each setting. Went for settings that didn’t decrease my personaly perceived image quality) → this had a noticeable impact on the VRAM usage (which only shows after restarting the game with those new settings)

Setup of my file:

  • I start the .exe file using a batch file that contains the startup resolution (example for 360p: -ForceRes -resX=480 -resY=360)
  • DLSS Super Resolution: off (I will likely turn that on again later, although I’ve read that it shows best results when the input it gets for upscaling is 720p or above, so it might not be that useful for my usecase)
  • I also used an in-game-settings-menu from the marketplace to change the resolution and other graphics settings. To meassure VRAM usage and GPU workload I always restarted the game after applying a new variation of settings. The settings that I had applied last were still active on restarting.

Engine & System:

  • Unreal Engine 5.2
  • Windows 11, DirectX12
  • Lenovo Legion 7i Pro, NVIDIA RTX 4080 Laptop, 12GB VRAM, 32GB RAM

Strange stuff I’ve noticed:

  • Changing the forced LOD level of the MetaHuman doesn’t affect anything → this is really insane… The VRAM usage of a forced LOD7 MetaHuman (which looks like a GTA3 character) was almost the same as the VRAM usage of the forced LOD0 version.
  • VRAM usage (or allocation) doesn’t go back to its initial state if I switch to higher resolution (and/or higher quality graphics settings) within the game. If I then then decide to switch the settings back to some lower resolution and lower graphics quality settings, I end up running the game (at the same settings) using more VRAM than when it was started. Closing the game and restarting it brings back the lower VRAM usage. Thus I feel like VRAM is not cleared nicely but just stays allocated.