Hey folks,
We have a WebGL app (kumospace.com) that is having FPS issues in Google Chrome.
The baseline is ~30-40 FPS. Interestingly, when we open a game (league of legends, steam, etc.), the FPS increases to a stable 60 FPS. When the game is closed, the FPS decreases to the baseline.
This is pretty weird behavior, and we were hoping you might have some ideas about how to troubleshoot. This behavior does not occur in Firefox or Safari.
We took a look into about:tracing and here’s what we found:
When a game is open (e.g., riot games client), in the CrGpuMain track, it looks like the average frame takes no more than 10ms.
When the game is closed, in the CrGpuMain track, ThreadControllerImpl::RunTask events take longer, leaving almost no idle time. Repeat offender sub events that take the most time tend to be:
RasterDecoderImpl::DoEndRasterCHROMIUM
SkiaOutputSurfaceImplOnGpu::FinishPaintRenderPass
CommandBufferService:PutChanged
GLContext::BackpressureFenceCreate
Scheduler::RunNextTask
SkiaOutputSurfaceImplOnGpu::SwapBuffers
Attached are the about:tracing profiles for each of the runs (with and without the riot client).
Here are some additional stats:
MacBook Pro (16-inch, 2019)
CPU: 2.6 GHz 6-Core Intel Core i7
Memory: 16 GB 2667 MHz DDR4
GPU: AMD Radeon Pro 5300M 4 GB
Chrome: Version 101.0.4951.54 (Official Build) (x86_64)
Bobby and Michael