зеркало из https://github.com/mozilla/moz-skia.git
Don't check the framebuffer status every time we flush when we're on Chromium;
this reduces the number of unnecessary command buffer flushes by about 50% for page loads when doing Ganesh rendering, since we do a flush on clear. BUG= R=bsalomon@google.com Author: humper@google.com Review URL: https://codereview.chromium.org/92103002 git-svn-id: http://skia.googlecode.com/svn/trunk@12421 2bbb7eff-a529-9590-31e7-b0007b416f81
This commit is contained in:
Родитель
dbe7f52412
Коммит
a50418f65e
|
@ -1276,6 +1276,7 @@ void GrGpuGL::onClear(const SkIRect* rect, GrColor color, bool canIgnoreRect) {
|
|||
return;
|
||||
}
|
||||
}
|
||||
|
||||
this->flushRenderTarget(rect);
|
||||
GrAutoTRestore<ScissorState> asr(&fScissorState);
|
||||
fScissorState.fEnabled = (NULL != rect);
|
||||
|
@ -1522,10 +1523,16 @@ void GrGpuGL::flushRenderTarget(const SkIRect* bound) {
|
|||
if (fHWBoundRenderTarget != rt) {
|
||||
GL_CALL(BindFramebuffer(GR_GL_FRAMEBUFFER, rt->renderFBOID()));
|
||||
#ifdef SK_DEBUG
|
||||
GrGLenum status;
|
||||
GL_CALL_RET(status, CheckFramebufferStatus(GR_GL_FRAMEBUFFER));
|
||||
if (status != GR_GL_FRAMEBUFFER_COMPLETE) {
|
||||
GrPrintf("GrGpuGL::flushRenderTarget glCheckFramebufferStatus %x\n", status);
|
||||
// don't do this check in Chromium -- this is causing
|
||||
// lots of repeated command buffer flushes when the compositor is
|
||||
// rendering with Ganesh, which is really slow; even too slow for
|
||||
// Debug mode.
|
||||
if (!this->glContext().info().isChromium()) {
|
||||
GrGLenum status;
|
||||
GL_CALL_RET(status, CheckFramebufferStatus(GR_GL_FRAMEBUFFER));
|
||||
if (status != GR_GL_FRAMEBUFFER_COMPLETE) {
|
||||
GrPrintf("GrGpuGL::flushRenderTarget glCheckFramebufferStatus %x\n", status);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
fHWBoundRenderTarget = rt;
|
||||
|
|
Загрузка…
Ссылка в новой задаче