diff options
author | Brian Paul <brianp@vmware.com> | 2011-02-28 18:24:20 -0700 |
---|---|---|
committer | Brian Paul <brianp@vmware.com> | 2011-02-28 18:24:20 -0700 |
commit | b0fceae22f008f3963a392ebd57d7d2a095a5e05 (patch) | |
tree | a8501b6860099bccd5e792950928c23ae932dd86 /src/mesa/main | |
parent | ca1b5515621d4ab9e90e27533fbc0fafa5cf641b (diff) |
mesa: reduce calls to _mesa_test_framebuffer_completeness()
when doing glCopyTex[Sub]Image() and checking the source buffer's
completeness.
We only need to determine FBO completeness when the status is indeterminate.
Diffstat (limited to 'src/mesa/main')
-rw-r--r-- | src/mesa/main/teximage.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/mesa/main/teximage.c b/src/mesa/main/teximage.c index 1f2ad7f266..d4ae6dd69d 100644 --- a/src/mesa/main/teximage.c +++ b/src/mesa/main/teximage.c @@ -1898,7 +1898,9 @@ copytexture_error_check( struct gl_context *ctx, GLuint dimensions, /* Check that the source buffer is complete */ if (ctx->ReadBuffer->Name) { - _mesa_test_framebuffer_completeness(ctx, ctx->ReadBuffer); + if (ctx->ReadBuffer->_Status == 0) { + _mesa_test_framebuffer_completeness(ctx, ctx->ReadBuffer); + } if (ctx->ReadBuffer->_Status != GL_FRAMEBUFFER_COMPLETE_EXT) { _mesa_error(ctx, GL_INVALID_FRAMEBUFFER_OPERATION_EXT, "glCopyTexImage%dD(invalid readbuffer)", dimensions); @@ -2000,7 +2002,9 @@ copytexsubimage_error_check1( struct gl_context *ctx, GLuint dimensions, { /* Check that the source buffer is complete */ if (ctx->ReadBuffer->Name) { - _mesa_test_framebuffer_completeness(ctx, ctx->ReadBuffer); + if (ctx->ReadBuffer->_Status == 0) { + _mesa_test_framebuffer_completeness(ctx, ctx->ReadBuffer); + } if (ctx->ReadBuffer->_Status != GL_FRAMEBUFFER_COMPLETE_EXT) { _mesa_error(ctx, GL_INVALID_FRAMEBUFFER_OPERATION_EXT, "glCopyTexImage%dD(invalid readbuffer)", dimensions); |