Commit 90549e9d by Jamie Madill

D3D: No-op ClearBufferfi calls with no DS attachments.

The ES3 spec is clear that these calls should no-op, see page 187, "If a buffer is not present, then a Clear directed at that buffer has no effect." BUG=angleproject:1078 TEST=dEQP-GLES3.functional.fbo.msaa.2_samples.* Change-Id: Ic521f55785d10065e2ffe2e98a68c9d7da0c2c71 Reviewed-on: https://chromium-review.googlesource.com/286776Reviewed-by: 's avatarCorentin Wallez <cwallez@chromium.org> Tested-by: 's avatarJamie Madill <jmadill@chromium.org> Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org>
parent 6d276c8e
...@@ -1873,6 +1873,12 @@ void GL_APIENTRY ClearBufferfi(GLenum buffer, GLint drawbuffer, GLfloat depth, G ...@@ -1873,6 +1873,12 @@ void GL_APIENTRY ClearBufferfi(GLenum buffer, GLint drawbuffer, GLfloat depth, G
Framebuffer *framebufferObject = context->getState().getDrawFramebuffer(); Framebuffer *framebufferObject = context->getState().getDrawFramebuffer();
ASSERT(framebufferObject); ASSERT(framebufferObject);
// If a buffer is not present, the clear has no effect
if (framebufferObject->getDepthbuffer() == nullptr && framebufferObject->getStencilbuffer() == nullptr)
{
return;
}
Error error = framebufferObject->clearBufferfi(context->getState(), buffer, drawbuffer, depth, stencil); Error error = framebufferObject->clearBufferfi(context->getState(), buffer, drawbuffer, depth, stencil);
if (error.isError()) if (error.isError())
{ {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment