Commit 934cd2e5 by Corentin Wallez

SixteenBppTextureTest: test the FBO are renderable before drawing

It is valid for the implementation to return a GL_FRAMEBUFFER_UNSUPPORTED for framebuffer completeness. Check for that case and return early. This fixes the RGB5_A1 tests on Mac that doesn't support rendering to this format. BUG=angleproject:891 Change-Id: If37d8f82e994a93a470cbdc01d758fe60d54a5b2 Reviewed-on: https://chromium-review.googlesource.com/298863Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org> Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org> Tryjob-Request: Geoff Lang <geofflang@chromium.org> Tryjob-Request: Corentin Wallez <cwallez@chromium.org> Tested-by: 's avatarCorentin Wallez <cwallez@chromium.org>
parent 0baaca68
...@@ -106,12 +106,19 @@ class SixteenBppTextureTest : public ANGLETest ...@@ -106,12 +106,19 @@ class SixteenBppTextureTest : public ANGLETest
glBindTexture(GL_TEXTURE_2D, 0); glBindTexture(GL_TEXTURE_2D, 0);
glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, tex, 0); glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, tex, 0);
glClearColor(1.0f, 0.0f, 0.0f, 1.0f); if (glCheckFramebufferStatus(GL_FRAMEBUFFER) != GL_FRAMEBUFFER_UNSUPPORTED)
glClear(GL_COLOR_BUFFER_BIT); {
EXPECT_PIXEL_EQ(0, 0, 255, 0, 0, 255); glClearColor(1.0f, 0.0f, 0.0f, 1.0f);
EXPECT_PIXEL_EQ(1, 0, 255, 0, 0, 255); glClear(GL_COLOR_BUFFER_BIT);
EXPECT_PIXEL_EQ(1, 1, 255, 0, 0, 255); EXPECT_PIXEL_EQ(0, 0, 255, 0, 0, 255);
EXPECT_PIXEL_EQ(0, 1, 255, 0, 0, 255); EXPECT_PIXEL_EQ(1, 0, 255, 0, 0, 255);
EXPECT_PIXEL_EQ(1, 1, 255, 0, 0, 255);
EXPECT_PIXEL_EQ(0, 1, 255, 0, 0, 255);
}
else
{
std::cout << "Skipping rendering to an unsupported framebuffer format" << std::endl;
}
glDeleteFramebuffers(1, &fbo); glDeleteFramebuffers(1, &fbo);
} }
...@@ -229,13 +236,20 @@ TEST_P(SixteenBppTextureTest, RGBA5551ClearAlpha) ...@@ -229,13 +236,20 @@ TEST_P(SixteenBppTextureTest, RGBA5551ClearAlpha)
glBindTexture(GL_TEXTURE_2D, 0); glBindTexture(GL_TEXTURE_2D, 0);
glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, tex, 0); glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, tex, 0);
glClearColor(0.0f, 0.0f, 0.0f, 0.0f); if (glCheckFramebufferStatus(GL_FRAMEBUFFER) != GL_FRAMEBUFFER_UNSUPPORTED)
glClear(GL_COLOR_BUFFER_BIT); {
EXPECT_PIXEL_EQ(0, 0, 0, 0, 0, 0); glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
glClear(GL_COLOR_BUFFER_BIT);
EXPECT_PIXEL_EQ(0, 0, 0, 0, 0, 0);
glClearColor(0.0f, 0.0f, 0.0f, 1.0f); glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
glClear(GL_COLOR_BUFFER_BIT); glClear(GL_COLOR_BUFFER_BIT);
EXPECT_PIXEL_EQ(0, 0, 0, 0, 0, 255); EXPECT_PIXEL_EQ(0, 0, 0, 0, 0, 255);
}
else
{
std::cout << "Skipping rendering to an unsupported framebuffer format" << std::endl;
}
glDeleteFramebuffers(1, &fbo); glDeleteFramebuffers(1, &fbo);
glDeleteTextures(1, &tex); glDeleteTextures(1, &tex);
......
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