GPU RAM Usage of empty panels

I have a lot of panels in my UI. A whole lot of them are mostly empty (it’s basically a Tab Menu system kind of thing, with a radio up-driven row of button at the top, each triggering visibility of a panel below)

I’m wondering what the impact on my GPU ram can be with - from a naive perspective - just looks like empty space, but in reality could end up creating huge GPU memory usage.

The panels are not using any bg TOP, just the settings of the color tab. Does that still result in images are large as the panels being uploaded onto the GPU?

What happens to those images - if that’s the case - once the panels have their display/enable flags turned off?

thanks,
d

Remember with TOPs, nothing is uploaded to the GPU. It all is created and stored there, (Except for the obvious exceptions like Movie In).

Panels are a way of drawing TOPs (and borders and BG colors) onto the screen. The window that is created to contain this drawing takes up space (WH4 bytes of memory). Other than that there is no extra space taken up when opening a panel. When the panel is closed the window is closed and the memory is freed.

A panel that is open in a network (in the tile viewer for example, or in a pane set to Panel Viewer.) is not taking up any extra space, as it’s just getting drawn to an already existing window.

Consequently display/enable flags for panels have no effect on GPU memory usage either.

So TOPs take up WH4 bytes of memory, and any window you have open takes up WH4 bytes of memory. Close the window and the memory is freed for the window, the TOPs always exist though.

Does that clear it up?

so… I’m trying to figure this out here… let’s make an example here:
MAIN CONTAINER - 1920x1080 - this is the basic UI container, the topmost container of my user interface
BUTTON1 300x30, BUTTON2 300x30 - these are two buttons hierarchically and visually inside MAIN CONTAINER - two text tops basically - only one of them can be pressed/active at any one time.
PANEL1 1920x1050 PANEL2 1920x1050 - these are two panels whose display and enable fields are dependent respectively on BUTTON1 and BUTTON2. So when I press button1, panel1 display comes on, and panel2 display is off, and viceversa when I press button2 only panel2 will be on/visible.

would you tell me what happens to my GPU RAM in the above case? is it always 1920x10804[MAIN]+3003042[2 BUTTONS]+1920x1050*4[whichever panel is active]

?

[

this is whats confusing - you say when the panel is closed the memory is freed. yet you say that display/flags have no effect.

Maybe we’re miscommunicating. I think I’m using the word panel to talk about a COMP:container (sorry I’m calling them panels internally in my UI) and you’re talking about controlpanels, right?

Are you saying then that in my example above the most GPU RAM I’ll ever use is 1920x1080x4 for the entire UI - which is the size of the container that encloses it all?

tx
d

When the Window is closed, the memory is freed (WH4 of the window)

Container COMPs, Button COMPs etc. take up 0 GPU ram, always. Don’t think about COMPs at all when talking about GPU RAM.

A window that is opened to display them, will take up GPU RAM equal to WH4 of that window. what it displays doesn’t matter.

You’re over complicating it.
TOPs take up memory when they are cooked. They are pre-created data ready to be used in rendering or as backgrounds.
It seems like you are trying to draw parallel between a COMP and a TOP, but there isn’t one.
A Panel COMP never takes up memory.
A floating window that is opened to view a Panel COMP does take up memory.

In your example, when a window is opened to view MAIN CONTAINER, assuming the window is opened at 1920x1080, it’ll take up 192010804 bytes of GPU RAM. If you resize the window, it takes up less/more memory depending on the new size. If you simply have the COMP there in a network, but its not visible in a separate window, it takes up no GPU RAM. The act of changing whats displayed in this window, clicking button1 and button2 to display panel1 and panel2 has no effect on GPU usage. The panels are simply drawn or not drawn on a 1920x1080 window (think of the window as a canvas) Lets say you had a button3 that made it so neither panel1 or panel2 were displayed, you are still taking up the exact same amount of memory, as the memory usage is merely the WH4 of the window, and not whats displayed in it.

Ya when I say a panel I mean a control panel, i.e a separate window that was opened to display the Panel COMP.

Basically, but again don’t think of the containers W and H, since if you resize the window the container was opened it, the GPU usage changes.

But again, its the Window + the GPU usage of all the TOPs. The GPU usage of the TOPs remains the same regardless of how they are used. A TOPs memory usage does not grow if they are stretched over a panel larger than their native res.

To throw one last wrench in this, depending on how the drivers handle windows, its possible we are overestimating GPU usage here.