Index: gpu/command_buffer/service/renderbuffer_manager_unittest.cc |
diff --git a/gpu/command_buffer/service/renderbuffer_manager_unittest.cc b/gpu/command_buffer/service/renderbuffer_manager_unittest.cc |
index 20e18c1c7f153eeff3944d3a091e95c4d9990024..87fde79bf09eb55b68d3a83ce85e38ee2667866d 100644 |
--- a/gpu/command_buffer/service/renderbuffer_manager_unittest.cc |
+++ b/gpu/command_buffer/service/renderbuffer_manager_unittest.cc |
@@ -8,6 +8,7 @@ |
#include "gpu/command_buffer/common/gles2_cmd_utils.h" |
#include "gpu/command_buffer/service/mocks.h" |
#include "testing/gtest/include/gtest/gtest.h" |
+#include "ui/gl/gl_implementation.h" |
#include "ui/gl/gl_mock.h" |
using ::testing::StrictMock; |
@@ -21,11 +22,11 @@ class RenderbufferManagerTestBase : public testing::Test { |
static const GLint kMaxSamples = 4; |
protected: |
- void SetUpBase(MemoryTracker* memory_tracker) { |
+ void SetUpBase(MemoryTracker* memory_tracker, bool depth24_supported) { |
gl_.reset(new ::testing::StrictMock<gfx::MockGLInterface>()); |
::gfx::GLInterface::SetGLInterface(gl_.get()); |
manager_.reset(new RenderbufferManager( |
- memory_tracker, kMaxSize, kMaxSamples)); |
+ memory_tracker, kMaxSize, kMaxSamples, depth24_supported)); |
} |
virtual void TearDown() { |
@@ -43,7 +44,8 @@ class RenderbufferManagerTestBase : public testing::Test { |
class RenderbufferManagerTest : public RenderbufferManagerTestBase { |
protected: |
virtual void SetUp() { |
- SetUpBase(NULL); |
+ bool depth24_supported = false; |
+ SetUpBase(NULL, depth24_supported); |
} |
}; |
@@ -52,7 +54,8 @@ class RenderbufferManagerMemoryTrackerTest |
protected: |
virtual void SetUp() { |
mock_memory_tracker_ = new StrictMock<MockMemoryTracker>(); |
- SetUpBase(mock_memory_tracker_.get()); |
+ bool depth24_supported = false; |
+ SetUpBase(mock_memory_tracker_.get(), depth24_supported); |
} |
scoped_refptr<MockMemoryTracker> mock_memory_tracker_; |
@@ -179,9 +182,9 @@ TEST_F(RenderbufferManagerMemoryTrackerTest, Basic) { |
const GLsizei kHeight2 = 32; |
uint32 expected_size_1 = 0; |
uint32 expected_size_2 = 0; |
- RenderbufferManager::ComputeEstimatedRenderbufferSize( |
+ manager_->ComputeEstimatedRenderbufferSize( |
kWidth, kHeight1, kSamples, kFormat, &expected_size_1); |
- RenderbufferManager::ComputeEstimatedRenderbufferSize( |
+ manager_->ComputeEstimatedRenderbufferSize( |
kWidth, kHeight2, kSamples, kFormat, &expected_size_2); |
EXPECT_MEMORY_ALLOCATION_CHANGE( |
0, expected_size_1, MemoryTracker::kUnmanaged); |
@@ -291,6 +294,32 @@ TEST_F(RenderbufferManagerTest, AddToSignature) { |
.RetiresOnSaturation(); |
} |
+class RenderbufferManagerFormatTest : public RenderbufferManagerTestBase { |
+ protected: |
+ virtual void SetUp() { |
+ bool depth24_supported = true; |
+ SetUpBase(NULL, depth24_supported); |
+ } |
+}; |
+ |
+TEST_F(RenderbufferManagerFormatTest, UpgradeDepthFormatOnGLES) { |
+ gfx::GLImplementation prev_impl = gfx::GetGLImplementation(); |
+ gfx::SetGLImplementation(gfx::kGLImplementationEGLGLES2); |
+ GLenum impl_format = |
+ manager_->InternalRenderbufferFormatToImplFormat(GL_DEPTH_COMPONENT16); |
+ gfx::SetGLImplementation(prev_impl); |
+ EXPECT_EQ(static_cast<GLenum>(GL_DEPTH_COMPONENT24), impl_format); |
+} |
+ |
+TEST_F(RenderbufferManagerFormatTest, UseUnsizedDepthFormatOnNonGLES) { |
+ gfx::GLImplementation prev_impl = gfx::GetGLImplementation(); |
+ gfx::SetGLImplementation(gfx::kGLImplementationDesktopGL); |
+ GLenum impl_format = |
+ manager_->InternalRenderbufferFormatToImplFormat(GL_DEPTH_COMPONENT16); |
+ gfx::SetGLImplementation(prev_impl); |
+ EXPECT_EQ(static_cast<GLenum>(GL_DEPTH_COMPONENT), impl_format); |
+} |
+ |
} // namespace gles2 |
} // namespace gpu |