Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(136)

Issue 13749002: Cache OpenGL textures and other objects in CompositingIOSurfaceMac copy/transform code. (Closed)

Created:
7 years, 8 months ago by miu
Modified:
7 years, 8 months ago
CC:
chromium-reviews, joi+watch-content_chromium.org, darin-cc_chromium.org, jam, sail+watch_chromium.org
Visibility:
Public.

Description

Cache OpenGL textures and other objects in CompositingIOSurfaceMac copy/transform code. On Macs using AMD Radeon and/or Intel HD Graphics GPUs, the deletion of textures, FBOs, and other OpenGL objects for each frame capture was causing GPU pipeline stalls. This was causing average capture time to be too high; in many cases, not allowing even a 30 FPS rate of capture. With this change, the pipeline stalls have been removed. Confirmed: 1. Visually, using our tab capture/playback tools (several hours of video watching). 2. Via Chrome browser tracing tool. 3. Via Apple's OpenGL Profiler tool (no operations other than glReadPixels and glFlush take more than 1 ms to complete). BUG=223326 TEST=See above; and ran content_unittests. Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=194404

Patch Set 1 : #

Total comments: 8

Patch Set 2 : Tweaks, per nick@'s comments. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+285 lines, -208 lines) Patch
M content/browser/renderer_host/compositing_iosurface_mac.h View 4 chunks +24 lines, -7 lines 0 comments Download
M content/browser/renderer_host/compositing_iosurface_mac.mm View 14 chunks +122 lines, -66 lines 0 comments Download
M content/browser/renderer_host/compositing_iosurface_transformer_mac.h View 5 chunks +44 lines, -12 lines 0 comments Download
M content/browser/renderer_host/compositing_iosurface_transformer_mac.cc View 1 9 chunks +85 lines, -104 lines 0 comments Download
M content/browser/renderer_host/compositing_iosurface_transformer_mac_unittest.cc View 1 5 chunks +10 lines, -19 lines 0 comments Download

Messages

Total messages: 5 (0 generated)
miu
To split the workload (although this isn't a huge CL): Alpha: Please review changes in ...
7 years, 8 months ago (2013-04-06 03:12:25 UTC) #1
ncarter (slow)
lgtm for transformer_*, though I am not an owner here. https://codereview.chromium.org/13749002/diff/2001/content/browser/renderer_host/compositing_iosurface_transformer_mac.cc File content/browser/renderer_host/compositing_iosurface_transformer_mac.cc (right): https://codereview.chromium.org/13749002/diff/2001/content/browser/renderer_host/compositing_iosurface_transformer_mac.cc#newcode144 ...
7 years, 8 months ago (2013-04-15 23:38:19 UTC) #2
Alpha Left Google
Thanks for fixing this! The logic around readback badly needs a refactoring, LGTM to unblock ...
7 years, 8 months ago (2013-04-16 01:49:07 UTC) #3
miu
Thanks all! :) https://codereview.chromium.org/13749002/diff/2001/content/browser/renderer_host/compositing_iosurface_transformer_mac.cc File content/browser/renderer_host/compositing_iosurface_transformer_mac.cc (right): https://codereview.chromium.org/13749002/diff/2001/content/browser/renderer_host/compositing_iosurface_transformer_mac.cc#newcode144 content/browser/renderer_host/compositing_iosurface_transformer_mac.cc:144: glDrawBuffers(1, kColorAttachments); On 2013/04/15 23:38:19, ncarter ...
7 years, 8 months ago (2013-04-16 03:51:22 UTC) #4
miu
7 years, 8 months ago (2013-04-16 18:46:12 UTC) #5
Message was sent while issue was closed.
Committed patchset #2 manually as r194404 (presubmit successful).

Powered by Google App Engine
This is Rietveld 408576698