Commit 92a1459f by Brandon Jones Committed by Commit Bot

Add Regression Test for D3D11 Alpha Passthrough

As a follow up to commit "8d6af086 Use dedicated ALPHA passthrough shader", this change adds a regression test that verifies RGB channels are set to zero when performing an ALPHA copy. BUG=angleproject:2239 Change-Id: Icc08deb523c388a0f2cbdcadd1eec69a97fbe136 Reviewed-on: https://chromium-review.googlesource.com/774579 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
parent b5601eb6
......@@ -1026,6 +1026,35 @@ TEST_P(CopyTextureTestDest, AlphaUnmultiply)
EXPECT_PIXEL_COLOR_EQ(0, 0, expectedPixels);
}
// Test to ensure that CopyTexture uses the correct ALPHA passthrough shader to ensure RGB channels
// are set to 0.
TEST_P(CopyTextureTestDest, AlphaCopyWithRGB)
{
ANGLE_SKIP_TEST_IF(!checkExtensions());
GLColor originalPixels(50u, 100u, 150u, 155u);
GLColor expectedPixels(0u, 0u, 0u, 155u);
// ReadPixels doesn't work with ALPHA (non-renderable), so we copy again back to an RGBA
// texture to verify contents.
glBindTexture(GL_TEXTURE_2D, mTextures[1]);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 1, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, &originalPixels);
glBindTexture(GL_TEXTURE_2D, mTextures[0]);
glTexImage2D(GL_TEXTURE_2D, 0, GL_ALPHA, 1, 1, 0, GL_ALPHA, GL_HALF_FLOAT_OES, nullptr);
glCopyTextureCHROMIUM(mTextures[1], 0, GL_TEXTURE_2D, mTextures[0], 0, GL_ALPHA,
GL_HALF_FLOAT_OES, false, false, false);
EXPECT_GL_NO_ERROR();
glCopyTextureCHROMIUM(mTextures[0], 0, GL_TEXTURE_2D, mTextures[1], 0, GL_RGBA,
GL_UNSIGNED_BYTE, false, false, false);
EXPECT_GL_NO_ERROR();
EXPECT_PIXEL_COLOR_EQ(0, 0, expectedPixels);
}
// Test the newly added ES3 unorm formats
TEST_P(CopyTextureTestES3, ES3UnormFormats)
{
......
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