gpu out of memory when using gpu rasterization
Reported by
szymon.s...@gmail.com,
Dec 3
|
|||
Issue descriptionChrome Version : 45.0.2554.101 OS Version: Ubuntu 18.04.1 LTS URLs (if applicable) :https://www.bing.com/images Other browsers tested: Add OK or FAIL after other browsers where you have tested this issue: Safari: Firefox: IE/Edge: What steps will reproduce the problem? 1. There is needed a graphic card with not much GPU memory, for example with 64mb. Or something what can simulate it. 2. Start Chromium with GPU rasterization enabled and force available GPU memory to something small like 64 mb: --enable-gpu-rasterization --force-gpu-mem-available-mb=64. When using the argument --show-fps-counter, it can be shown that GPU rasterization is used and GPU memory is constrained to 64mb. I'm using quicknanobrowser example from Qt 5.6 3. Go to a website with many images for example https://www.bing.com/images and find some images there 4. Start scrolling until GPU out of memory. What is the expected result? No GPU out of memory. What happens instead of that? There is GPU out of out memory. The screen will flicker and the website will be reloaded. When using software rasterization there is no problem at all. Please provide any additional information below. Attach a screenshot if possible. I put some additional logs inside the Texture class (in the texture_manager.cc file) to track memory usage of loaded textures and it looks that textures are infinitely loaded to GPU while scrolling. When GPU out of memory occurs (it usually comes from glTexImage2D function), some graphical resources are freed including textures and only textures from the current view are reloaded. The screen will flicker for a second when this happens. The memory limit provided with the parameter force-gpu-mem-available-mb seems to be not used here. It looks that there is an attempt to check whether we have enough GPU memory to load a texture in the function TextureManager::ValidateTexImage: if (!memory_tracker_managed_->EnsureGPUMemoryAvailable(args.pixels_size)) { ERRORSTATE_SET_GL_ERROR(error_state, GL_OUT_OF_MEMORY, function_name, "out of memory"); return false; } However there is only a stub of this function: bool GpuMemoryManager::EnsureGPUMemoryAvailable(uint64 /* size_needed */) { // TODO: Check if there is enough space. Lose contexts until there is. return true; } And it looks that it was later deleted at all and not implemented: https://groups.google.com/a/chromium.org/forum/#!msg/chromium-checkins/pBOMhIJLYJY/eppfZsnyBQAJ
,
Dec 3
,
Dec 7
The flag kForceGpuMemAvailableMb affects only compositor memory, not GPU raster. Marking as WontFix -- GPU raster is disabled on this configuration because this system is not stable enough for GPU rasterization. |
|||
►
Sign in to add a comment |
|||
Comment 1 by dtapu...@chromium.org
, Dec 3