summaryrefslogtreecommitdiffstats
path: root/gpu
diff options
context:
space:
mode:
authortiago.vignatti <tiago.vignatti@intel.com>2015-04-13 15:41:46 -0700
committerCommit bot <commit-bot@chromium.org>2015-04-13 22:42:15 +0000
commit825c082c407341474d2083c180d90c3480b4ebbd (patch)
tree5801c40b9a852089dc57cadce40fb43e28f0d6f2 /gpu
parentbd61b195388b86db195a43894cdf8bc36628d006 (diff)
downloadchromium_src-825c082c407341474d2083c180d90c3480b4ebbd.zip
chromium_src-825c082c407341474d2083c180d90c3480b4ebbd.tar.gz
chromium_src-825c082c407341474d2083c180d90c3480b4ebbd.tar.bz2
gl_tests: Use zero size gl surface for offscreen rendering
In GLX, most of the drivers can cope with both PBuffer and Surfaceless modes for offscreen rendering. In EGL though, Intel driver only works with Surfaceless. This CL changes all hardware platforms to use Surfaceless by forcing a zero size GL surface initialization. Ozone-GBM wasn't previously working because of that but now works like a charm ("[ PASSED ] 94 tests"). This CL also fixes gpu_unittests under Ozone-GBM ("[ PASSED ] 2544 tests") and cleans a bit the message loop creation, bringing it to run earlier in the RunTestSuite. BUG=471261 TEST=gl_tests, gpu_unittests on both GBM and X11 (Linux) NOTRY=true Review URL: https://codereview.chromium.org/1025523005 Cr-Commit-Position: refs/heads/master@{#324925}
Diffstat (limited to 'gpu')
-rw-r--r--gpu/DEPS1
-rw-r--r--gpu/command_buffer/client/cmd_buffer_helper_test.cc9
-rw-r--r--gpu/command_buffer/client/fenced_allocator_test.cc9
-rw-r--r--gpu/command_buffer/client/mapped_memory_unittest.cc8
-rw-r--r--gpu/command_buffer/client/ring_buffer_test.cc9
-rw-r--r--gpu/command_buffer/common/unittest_main.cc9
-rw-r--r--gpu/command_buffer/service/gpu_scheduler_unittest.cc9
-rw-r--r--gpu/command_buffer/tests/gl_manager.cc2
-rw-r--r--gpu/command_buffer/tests/gl_tests_main.cc10
9 files changed, 18 insertions, 48 deletions
diff --git a/gpu/DEPS b/gpu/DEPS
index 6b8aacb..1b002bc 100644
--- a/gpu/DEPS
+++ b/gpu/DEPS
@@ -8,4 +8,5 @@ include_rules = [
"+ui/gfx",
"+ui/gl",
"+ui/surface",
+ "+ui/ozone/public",
]
diff --git a/gpu/command_buffer/client/cmd_buffer_helper_test.cc b/gpu/command_buffer/client/cmd_buffer_helper_test.cc
index ac83da5..6348abb 100644
--- a/gpu/command_buffer/client/cmd_buffer_helper_test.cc
+++ b/gpu/command_buffer/client/cmd_buffer_helper_test.cc
@@ -9,7 +9,6 @@
#include "base/bind.h"
#include "base/bind_helpers.h"
#include "base/memory/linked_ptr.h"
-#include "base/message_loop/message_loop.h"
#include "gpu/command_buffer/client/cmd_buffer_helper.h"
#include "gpu/command_buffer/service/command_buffer_service.h"
#include "gpu/command_buffer/service/gpu_scheduler.h"
@@ -17,10 +16,6 @@
#include "gpu/command_buffer/service/transfer_buffer_manager.h"
#include "testing/gtest/include/gtest/gtest.h"
-#if defined(OS_MACOSX)
-#include "base/mac/scoped_nsautorelease_pool.h"
-#endif
-
namespace gpu {
using testing::Return;
@@ -256,10 +251,6 @@ class CommandBufferHelperTest : public testing::Test {
CommandBufferOffset get_helper_put() { return helper_->put_; }
-#if defined(OS_MACOSX)
- base::mac::ScopedNSAutoreleasePool autorelease_pool_;
-#endif
- base::MessageLoop message_loop_;
scoped_ptr<AsyncAPIMock> api_mock_;
scoped_ptr<TransferBufferManagerInterface> transfer_buffer_manager_;
scoped_ptr<CommandBufferServiceLocked> command_buffer_;
diff --git a/gpu/command_buffer/client/fenced_allocator_test.cc b/gpu/command_buffer/client/fenced_allocator_test.cc
index 3af9367..6b9f00f 100644
--- a/gpu/command_buffer/client/fenced_allocator_test.cc
+++ b/gpu/command_buffer/client/fenced_allocator_test.cc
@@ -7,7 +7,6 @@
#include "base/bind.h"
#include "base/bind_helpers.h"
#include "base/memory/aligned_memory.h"
-#include "base/message_loop/message_loop.h"
#include "gpu/command_buffer/client/cmd_buffer_helper.h"
#include "gpu/command_buffer/client/fenced_allocator.h"
#include "gpu/command_buffer/service/cmd_buffer_engine.h"
@@ -17,10 +16,6 @@
#include "gpu/command_buffer/service/transfer_buffer_manager.h"
#include "testing/gtest/include/gtest/gtest.h"
-#if defined(OS_MACOSX)
-#include "base/mac/scoped_nsautorelease_pool.h"
-#endif
-
namespace gpu {
using testing::Return;
@@ -74,10 +69,6 @@ class BaseFencedAllocatorTest : public testing::Test {
return command_buffer_->GetLastState().token;
}
-#if defined(OS_MACOSX)
- base::mac::ScopedNSAutoreleasePool autorelease_pool_;
-#endif
- base::MessageLoop message_loop_;
scoped_ptr<AsyncAPIMock> api_mock_;
scoped_ptr<TransferBufferManagerInterface> transfer_buffer_manager_;
scoped_ptr<CommandBufferService> command_buffer_;
diff --git a/gpu/command_buffer/client/mapped_memory_unittest.cc b/gpu/command_buffer/client/mapped_memory_unittest.cc
index 9d5bada..6430b66 100644
--- a/gpu/command_buffer/client/mapped_memory_unittest.cc
+++ b/gpu/command_buffer/client/mapped_memory_unittest.cc
@@ -15,10 +15,6 @@
#include "gpu/command_buffer/service/transfer_buffer_manager.h"
#include "testing/gtest/include/gtest/gtest.h"
-#if defined(OS_MACOSX)
-#include "base/mac/scoped_nsautorelease_pool.h"
-#endif
-
namespace gpu {
using testing::Return;
@@ -71,10 +67,6 @@ class MappedMemoryTestBase : public testing::Test {
return command_buffer_->GetLastState().token;
}
-#if defined(OS_MACOSX)
- base::mac::ScopedNSAutoreleasePool autorelease_pool_;
-#endif
- base::MessageLoop message_loop_;
scoped_ptr<AsyncAPIMock> api_mock_;
scoped_ptr<TransferBufferManagerInterface> transfer_buffer_manager_;
scoped_ptr<CommandBufferService> command_buffer_;
diff --git a/gpu/command_buffer/client/ring_buffer_test.cc b/gpu/command_buffer/client/ring_buffer_test.cc
index c1aab88..ac5634a 100644
--- a/gpu/command_buffer/client/ring_buffer_test.cc
+++ b/gpu/command_buffer/client/ring_buffer_test.cc
@@ -8,7 +8,6 @@
#include "base/bind.h"
#include "base/bind_helpers.h"
-#include "base/message_loop/message_loop.h"
#include "gpu/command_buffer/client/cmd_buffer_helper.h"
#include "gpu/command_buffer/service/cmd_buffer_engine.h"
#include "gpu/command_buffer/service/command_buffer_service.h"
@@ -17,10 +16,6 @@
#include "gpu/command_buffer/service/transfer_buffer_manager.h"
#include "testing/gtest/include/gtest/gtest.h"
-#if defined(OS_MACOSX)
-#include "base/mac/scoped_nsautorelease_pool.h"
-#endif
-
namespace gpu {
using testing::Return;
@@ -96,10 +91,6 @@ class BaseRingBufferTest : public testing::Test {
return command_buffer_->GetLastState().token;
}
-#if defined(OS_MACOSX)
- base::mac::ScopedNSAutoreleasePool autorelease_pool_;
-#endif
- base::MessageLoop message_loop_;
scoped_ptr<AsyncAPIMock> api_mock_;
scoped_ptr<TransferBufferManagerInterface> transfer_buffer_manager_;
scoped_ptr<CommandBufferService> command_buffer_;
diff --git a/gpu/command_buffer/common/unittest_main.cc b/gpu/command_buffer/common/unittest_main.cc
index 874bae7..17b6114 100644
--- a/gpu/command_buffer/common/unittest_main.cc
+++ b/gpu/command_buffer/common/unittest_main.cc
@@ -5,11 +5,16 @@
#include "base/at_exit.h"
#include "base/bind.h"
#include "base/command_line.h"
+#include "base/message_loop/message_loop.h"
#include "base/test/launcher/unit_test_launcher.h"
#include "base/test/test_suite.h"
#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"
+#if defined(OS_MACOSX)
+#include "base/mac/scoped_nsautorelease_pool.h"
+#endif
+
namespace {
class NoAtExitBaseTestSuite : public base::TestSuite {
@@ -20,6 +25,7 @@ class NoAtExitBaseTestSuite : public base::TestSuite {
};
int RunTestSuite(int argc, char** argv) {
+ base::MessageLoop message_loop;
return NoAtExitBaseTestSuite(argc, argv).Run();
}
@@ -33,6 +39,9 @@ int main(int argc, char** argv) {
base::AtExitManager exit_manager;
#endif
base::CommandLine::Init(argc, argv);
+#if defined(OS_MACOSX)
+ base::mac::ScopedNSAutoreleasePool autorelease_pool;
+#endif
testing::InitGoogleMock(&argc, argv);
return base::LaunchUnitTests(argc,
argv,
diff --git a/gpu/command_buffer/service/gpu_scheduler_unittest.cc b/gpu/command_buffer/service/gpu_scheduler_unittest.cc
index c1c0d1c..c1c2ef7 100644
--- a/gpu/command_buffer/service/gpu_scheduler_unittest.cc
+++ b/gpu/command_buffer/service/gpu_scheduler_unittest.cc
@@ -2,7 +2,6 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "base/message_loop/message_loop.h"
#include "gpu/command_buffer/common/command_buffer_mock.h"
#include "gpu/command_buffer/service/gles2_cmd_decoder.h"
#include "gpu/command_buffer/service/gles2_cmd_decoder_mock.h"
@@ -11,10 +10,6 @@
#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"
-#if defined(OS_MACOSX)
-#include "base/mac/scoped_nsautorelease_pool.h"
-#endif
-
using testing::_;
using testing::DoAll;
using testing::Invoke;
@@ -72,10 +67,6 @@ class GpuSchedulerTest : public testing::Test {
return command_buffer_->GetLastState().error;
}
-#if defined(OS_MACOSX)
- base::mac::ScopedNSAutoreleasePool autorelease_pool_;
-#endif
- base::MessageLoop message_loop;
scoped_ptr<MockCommandBuffer> command_buffer_;
scoped_refptr<Buffer> shared_memory_buffer_;
int32* buffer_;
diff --git a/gpu/command_buffer/tests/gl_manager.cc b/gpu/command_buffer/tests/gl_manager.cc
index e4ed83d..0196e3b 100644
--- a/gpu/command_buffer/tests/gl_manager.cc
+++ b/gpu/command_buffer/tests/gl_manager.cc
@@ -302,7 +302,7 @@ void GLManager::InitializeWithCommandLine(const GLManager::Options& options,
decoder_->set_engine(gpu_scheduler_.get());
- surface_ = gfx::GLSurface::CreateOffscreenGLSurface(options.size);
+ surface_ = gfx::GLSurface::CreateOffscreenGLSurface(gfx::Size());
ASSERT_TRUE(surface_.get() != NULL) << "could not create offscreen surface";
if (base_context_) {
diff --git a/gpu/command_buffer/tests/gl_tests_main.cc b/gpu/command_buffer/tests/gl_tests_main.cc
index 7b7d8d86..6ac5719 100644
--- a/gpu/command_buffer/tests/gl_tests_main.cc
+++ b/gpu/command_buffer/tests/gl_tests_main.cc
@@ -24,7 +24,14 @@
namespace {
int RunHelper(base::TestSuite* testSuite) {
+#if defined(USE_OZONE)
+ base::MessageLoopForUI main_loop;
+#else
base::MessageLoopForIO message_loop;
+#endif
+ gfx::GLSurface::InitializeOneOff();
+ ::gles2::Initialize();
+ gpu::ApplyGpuDriverBugWorkarounds(base::CommandLine::ForCurrentProcess());
return testSuite->Run();
}
@@ -39,9 +46,6 @@ int main(int argc, char** argv) {
#if defined(OS_MACOSX)
base::mac::ScopedNSAutoreleasePool pool;
#endif
- gfx::GLSurface::InitializeOneOff();
- ::gles2::Initialize();
- gpu::ApplyGpuDriverBugWorkarounds(base::CommandLine::ForCurrentProcess());
testing::InitGoogleMock(&argc, argv);
return base::LaunchUnitTestsSerially(
argc,