This is an overview of the GPU column in MemoryInfra.
If you want an overview of total GPU memory usage, select the GPU process' GPU category and look at the size column. (Not effective size.)
GPU Memory in Chrome involves several different types of allocations. These include, but are not limited to:
GPU Memory can be found across a number of different processes, in a few different categories.
Renderer or browser process:
Many of the objects listed above are shared between multiple processes. Consider a GL texture used by CC --- this texture is shared between a renderer and the GPU process. Additionally, the texture may be backed by a GLImage which was created from a GPUMemoryBuffer, which is also shared between the renderer and GPU process. This means that the single texture may show up in the memory logs of two different processes multiple times.
To make things easier to understand, each GPU allocation is only ever “owned” by a single process and category. For instance, in the above example, the texture would be owned by the CC category of the renderer process. Each allocation has (at least) two sizes recorded --- size and effective size. In the owning allocation, these two numbers will match:
Note that the allocation also gives information on what other processes it is shared with (seen by hovering over the green arrow). If we navigate to the other allocation (in this case, gpu/gl/textures/client_25/texture_216) we will see a non-owning allocation. In this allocation the size is the same, but the effective size is 0:
Other types, such as GPUMemoryBuffers and GLImages have similar sharing patterns.
When trying to get an overview of the absolute memory usage tied to the GPU, you can look at the size column (not effective size) of just the GPU process' GPU category. This will show all GPU allocations, whether or not they are owned by another process.