I’m looking for a GL extension supported by ImgTec to query the total and available (unallocated) amount of GPU memory. Does it exist? Bonus points if it lets you query how many bytes of GPU memory are tied up with managing “ghosts”!
What I’m looking for is along the lines of:
- NVX_gpu_memory_info or
We could use this to determine:
- what use cases cause GPU memory consumption to increase,
- what the current consumption is [cross-system], and
- help pin down use cases where the PowerVR driver is ghosting textures.
BACKGROUND: Our system’s GPU memory is being exceeded, again. There are multiple independent programs running on this system utilizing the PowerVR GPU. These applications are written by separate companies which don’t share source code. We need a way to troubleshoot these kind of problems quickly when they arise. The requested extension would provide that. For instance: Disable program X – observe available GPU memory. Enable program X – observe available GPU memory. Try use case X, observe available GPU memory.
Even if there were only one application on the system utilizing the GPU (ours) and we instrumented that application to estimate current GPU memory consumed (in buffers, textures, etc.), that still doesn’t cut it. The GPU driver will be consuming more memory than our estimates. For instance, ghosting many megabytes of memory due to application code poorly optimized for tile-based deferred GPUs, substituting alternate internal texture or renderbuffer formats under-the-hood, creating parameter buffers and other driver-internal buffers for its own uses which consume additional GPU memory.