Don't block setting the DEPTH_STENCIL attachment based on the resource format.
By blocking the attachment at this point, it doesn't allow for the resource to
have a depth stencil format later.
BUG=997702
Change-Id: Iec5243012cb9a9527c5b1467d44c393b0dc6bddc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1780898
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
diff --git a/src/libANGLE/Framebuffer.cpp b/src/libANGLE/Framebuffer.cpp
index 7fbeb53..bfbebdd 100644
--- a/src/libANGLE/Framebuffer.cpp
+++ b/src/libANGLE/Framebuffer.cpp
@@ -1788,27 +1788,13 @@
{
case GL_DEPTH_STENCIL:
case GL_DEPTH_STENCIL_ATTACHMENT:
- {
- // ensure this is a legitimate depth+stencil format
- FramebufferAttachmentObject *attachmentObj = resource;
- if (resource)
- {
- const Format &format = resource->getAttachmentFormat(binding, textureIndex);
- if (format.info->depthBits == 0 || format.info->stencilBits == 0)
- {
- // Attaching nullptr detaches the current attachment.
- attachmentObj = nullptr;
- }
- }
-
updateAttachment(context, &mState.mDepthAttachment, DIRTY_BIT_DEPTH_ATTACHMENT,
- &mDirtyDepthAttachmentBinding, type, binding, textureIndex,
- attachmentObj, numViews, baseViewIndex, isMultiview, samples);
+ &mDirtyDepthAttachmentBinding, type, binding, textureIndex, resource,
+ numViews, baseViewIndex, isMultiview, samples);
updateAttachment(context, &mState.mStencilAttachment, DIRTY_BIT_STENCIL_ATTACHMENT,
- &mDirtyStencilAttachmentBinding, type, binding, textureIndex,
- attachmentObj, numViews, baseViewIndex, isMultiview, samples);
+ &mDirtyStencilAttachmentBinding, type, binding, textureIndex, resource,
+ numViews, baseViewIndex, isMultiview, samples);
break;
- }
case GL_DEPTH:
case GL_DEPTH_ATTACHMENT: