New issue
Advanced search Search tips

Issue 828114 link

Starred by 1 user

Issue metadata

Status: Assigned
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Mac
Pri: 3
Type: Feature



Sign in to add a comment

mac: IOSurface create, bind and CA-commit are still sometimes slow

Project Member Reported by ccameron@chromium.org, Apr 2 2018

Issue description

We've done a lot of work to speed up IOSurfaceCreate and CGLTexImageIOSurface2D calls, but they still pop up as multi-millisecond stalls periodically. We see them in:
- IOSurfaceCreate
- CGLTexImageIOSurface2D
- The transaction commit of -[CALayer setContents:]

I'd like for us to investigate the following ideas:

1. A cross-context service-side reuse pool. We can round-up IOSurface alloc size to enable more reuse (cause they're RECT textures). We can do reuse texture binds across contexts because mac virtualizes contexts.

2. We may want to look into GPU raster tile size (no specific idea here, maybe try rounding up to the nearest 256 pixels or something like that, maybe look at square tiles, etc).

3. We should test using glTexImage2D to upload to IOSurfaces instead of using Lock/Unlock, to determine which results in more and longer stalls.

4. We may want to see if destroying and re-creating all (or some) IOSurfaces reduces stalls. For anonymous IOSurfaces this can be done fairly trivially.
 

Sign in to add a comment