WebGLCompatibility: Allow GL_DEPTH_STENCIL_ATTACHMENT.
Permits depth-stencil attachment points for WebGL.
BUG=angleproject:2090
Change-Id: I7f5a7c63f2a4a76116ce5639833e5fd8d7f50ffb
Reviewed-on: https://chromium-review.googlesource.com/764591
Reviewed-by: Bryan Bernhart <bryan.bernhart@intel.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
diff --git a/src/tests/gl_tests/WebGLCompatibilityTest.cpp b/src/tests/gl_tests/WebGLCompatibilityTest.cpp
index c78f193..76ed9b7 100644
--- a/src/tests/gl_tests/WebGLCompatibilityTest.cpp
+++ b/src/tests/gl_tests/WebGLCompatibilityTest.cpp
@@ -2921,6 +2921,37 @@
}
}
+// Verify GL_DEPTH_STENCIL_ATTACHMENT is a valid attachment point.
+TEST_P(WebGLCompatibilityTest, DepthStencilAttachment)
+{
+ ANGLE_SKIP_TEST_IF(getClientMajorVersion() > 2);
+
+ // Test that attaching a bound texture succeeds.
+ GLTexture texture;
+ glBindTexture(GL_TEXTURE_2D, texture);
+
+ GLFramebuffer fbo;
+ glBindFramebuffer(GL_FRAMEBUFFER, fbo);
+
+ glFramebufferTexture2D(GL_FRAMEBUFFER, GL_DEPTH_STENCIL_ATTACHMENT, GL_TEXTURE_2D, texture, 0);
+
+ GLint attachmentType;
+ glGetFramebufferAttachmentParameteriv(GL_FRAMEBUFFER, GL_DEPTH_STENCIL_ATTACHMENT,
+ GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE,
+ /*param*/ &attachmentType);
+ EXPECT_GL_NO_ERROR();
+ EXPECT_GLENUM_EQ(GL_TEXTURE, attachmentType);
+
+ // Test when if no attach object at the named attachment point and pname is not OBJECT_TYPE.
+ GLFramebuffer fbo2;
+ glBindFramebuffer(GL_FRAMEBUFFER, fbo2);
+
+ glGetFramebufferAttachmentParameteriv(GL_FRAMEBUFFER, GL_DEPTH_STENCIL_ATTACHMENT,
+ GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME,
+ /*param*/ &attachmentType);
+ EXPECT_GL_ERROR(GL_INVALID_ENUM);
+}
+
// This tests that rendering feedback loops works as expected with WebGL 2.
// Based on WebGL test conformance2/rendering/rendering-sampling-feedback-loop.html
TEST_P(WebGL2CompatibilityTest, RenderingFeedbackLoopWithDrawBuffers)