D3D11 Texture refactoring: Store ANGLEFormat in TextureStorage11
This is needed to enable removing GetDXGIFormatInfo calls, which are
difficult to use correctly due to a texture format being associated
with multiple DXGI formats. This is done in preparation of changing
some of the DXGI formats associated with integer textures.
BUG=angleproject:1244
TEST=angle_end2end_tests,
dEQP-GLES3.functional.fbo.* (no regressions)
Change-Id: I992c4c06189887c1b9de02f9b63dd9a474fcffab
Reviewed-on: https://chromium-review.googlesource.com/329094
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
diff --git a/src/tests/gl_tests/FramebufferTest.cpp b/src/tests/gl_tests/FramebufferTest.cpp
index 5edd998..1c679f6 100644
--- a/src/tests/gl_tests/FramebufferTest.cpp
+++ b/src/tests/gl_tests/FramebufferTest.cpp
@@ -124,6 +124,16 @@
EXPECT_GL_NO_ERROR();
}
+ void testZeroHeightRenderbuffer()
+ {
+ glGenRenderbuffers(1, &mRenderbuffer);
+ glBindRenderbuffer(GL_RENDERBUFFER, mRenderbuffer);
+ glRenderbufferStorage(GL_RENDERBUFFER, GL_RGBA8, 1, 0);
+ glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER,
+ mRenderbuffer);
+ EXPECT_GL_NO_ERROR();
+ }
+
void SetUp() override
{
ANGLETest::SetUp();
@@ -303,6 +313,18 @@
ASSERT_GL_ERROR(GL_INVALID_FRAMEBUFFER_OPERATION);
}
+// Test that a renderbuffer with zero height but nonzero width is handled without crashes/asserts.
+TEST_P(FramebufferFormatsTest, ZeroHeightRenderbuffer)
+{
+ if (getClientVersion() < 3)
+ {
+ std::cout << "Test skipped due to missing ES3" << std::endl;
+ return;
+ }
+
+ testZeroHeightRenderbuffer();
+}
+
// Use this to select which configurations (e.g. which renderer, which GLES major version) these
// tests should be run against.
ANGLE_INSTANTIATE_TEST(FramebufferFormatsTest,