From a749a946d9eaeff53419a1a65bf59021ba1acf51 Mon Sep 17 00:00:00 2001 From: "leandrogracia@chromium.org" Date: Thu, 21 Jul 2011 15:21:25 +0000 Subject: Revert 93397 - Revert 93393 - Revert was broken. Restoring. Crashing on Linux Touch: http://build.chromium.org/p/chromium/builders/Linux%20Touch/builds/2649/steps/compile/logs/stdio Allow creating a gpu channel that uses software rendering Where supported (on ANGLE with EGL_ANGLE_software_display), allow for the creation of gpu channels that use software rendering instead of hardware rendering. BUG= TEST=trybots, other later tests Review URL: http://codereview.chromium.org/7383004 TBR=jbauman@chromium.org Review URL: http://codereview.chromium.org/7468028 TBR=leandrogracia@chromium.org Review URL: http://codereview.chromium.org/7468029 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@93398 0039d316-1c4b-4281-b951-d872f2087c98 --- gpu/command_buffer/client/gles2_demo.cc | 1 + gpu/command_buffer/service/gpu_scheduler.h | 1 + gpu/command_buffer/service/gpu_scheduler_linux.cc | 8 +++++--- gpu/command_buffer/service/gpu_scheduler_mac.cc | 3 ++- gpu/command_buffer/service/gpu_scheduler_win.cc | 6 ++++-- gpu/demos/framework/window.cc | 2 +- 6 files changed, 14 insertions(+), 7 deletions(-) (limited to 'gpu') diff --git a/gpu/command_buffer/client/gles2_demo.cc b/gpu/command_buffer/client/gles2_demo.cc index c9595df..f981b1b 100644 --- a/gpu/command_buffer/client/gles2_demo.cc +++ b/gpu/command_buffer/client/gles2_demo.cc @@ -61,6 +61,7 @@ bool GLES2Demo::Setup(void* hwnd, int32 size) { NULL); if (!gpu_scheduler->Initialize(reinterpret_cast(hwnd), gfx::Size(), + false, gpu::gles2::DisallowedExtensions(), NULL, std::vector(), diff --git a/gpu/command_buffer/service/gpu_scheduler.h b/gpu/command_buffer/service/gpu_scheduler.h index eedae30..d34e67f 100644 --- a/gpu/command_buffer/service/gpu_scheduler.h +++ b/gpu/command_buffer/service/gpu_scheduler.h @@ -63,6 +63,7 @@ class GpuScheduler : public CommandBufferEngine { // Perform platform specific and common initialization. bool Initialize(gfx::PluginWindowHandle hwnd, const gfx::Size& size, + bool software, const gles2::DisallowedExtensions& disallowed_extensions, const char* allowed_extensions, const std::vector& attribs, diff --git a/gpu/command_buffer/service/gpu_scheduler_linux.cc b/gpu/command_buffer/service/gpu_scheduler_linux.cc index 1c6c8e9..fcbbd65 100644 --- a/gpu/command_buffer/service/gpu_scheduler_linux.cc +++ b/gpu/command_buffer/service/gpu_scheduler_linux.cc @@ -21,6 +21,7 @@ namespace gpu { bool GpuScheduler::Initialize( gfx::PluginWindowHandle window, const gfx::Size& size, + bool software, const gles2::DisallowedExtensions& disallowed_extensions, const char* allowed_extensions, const std::vector& attribs, @@ -28,12 +29,13 @@ bool GpuScheduler::Initialize( // Create either a view or pbuffer based GLSurface. scoped_refptr surface; #if defined(TOUCH_UI) - surface = gfx::GLSurface::CreateOffscreenGLSurface(gfx::Size(1, 1)); + surface = gfx::GLSurface::CreateOffscreenGLSurface(software, gfx::Size(1, 1)); #else if (window) - surface = gfx::GLSurface::CreateViewGLSurface(window); + surface = gfx::GLSurface::CreateViewGLSurface(software, window); else - surface = gfx::GLSurface::CreateOffscreenGLSurface(gfx::Size(1, 1)); + surface = gfx::GLSurface::CreateOffscreenGLSurface(software, + gfx::Size(1, 1)); #endif if (!surface.get()) { diff --git a/gpu/command_buffer/service/gpu_scheduler_mac.cc b/gpu/command_buffer/service/gpu_scheduler_mac.cc index 2835088..cfa0d5c 100644 --- a/gpu/command_buffer/service/gpu_scheduler_mac.cc +++ b/gpu/command_buffer/service/gpu_scheduler_mac.cc @@ -14,12 +14,13 @@ namespace gpu { bool GpuScheduler::Initialize( gfx::PluginWindowHandle window, const gfx::Size& size, + bool software, const gles2::DisallowedExtensions& disallowed_extensions, const char* allowed_extensions, const std::vector& attribs, gfx::GLShareGroup* share_group) { scoped_refptr surface( - gfx::GLSurface::CreateOffscreenGLSurface(gfx::Size(1, 1))); + gfx::GLSurface::CreateOffscreenGLSurface(software, gfx::Size(1, 1))); if (!surface.get()) { LOG(ERROR) << "CreateOffscreenGLSurface failed.\n"; Destroy(); diff --git a/gpu/command_buffer/service/gpu_scheduler_win.cc b/gpu/command_buffer/service/gpu_scheduler_win.cc index 20e5382..84f2b83 100644 --- a/gpu/command_buffer/service/gpu_scheduler_win.cc +++ b/gpu/command_buffer/service/gpu_scheduler_win.cc @@ -16,6 +16,7 @@ namespace gpu { bool GpuScheduler::Initialize( gfx::PluginWindowHandle window, const gfx::Size& size, + bool software, const gles2::DisallowedExtensions& disallowed_extensions, const char* allowed_extensions, const std::vector& attribs, @@ -23,9 +24,10 @@ bool GpuScheduler::Initialize( // Create either a view or pbuffer based GLSurface. scoped_refptr surface; if (window) { - surface = gfx::GLSurface::CreateViewGLSurface(window); + surface = gfx::GLSurface::CreateViewGLSurface(software, window); } else { - surface = gfx::GLSurface::CreateOffscreenGLSurface(gfx::Size(1, 1)); + surface = gfx::GLSurface::CreateOffscreenGLSurface(software, + gfx::Size(1, 1)); } if (!surface.get()) { diff --git a/gpu/demos/framework/window.cc b/gpu/demos/framework/window.cc index 30ba86c..f609a55 100644 --- a/gpu/demos/framework/window.cc +++ b/gpu/demos/framework/window.cc @@ -61,7 +61,7 @@ bool Window::CreateRenderContext(gfx::PluginWindowHandle hwnd) { GpuScheduler* gpu_scheduler( new GpuScheduler(command_buffer.get(), NULL, NULL)); - if (!gpu_scheduler->Initialize(hwnd, gfx::Size(), + if (!gpu_scheduler->Initialize(hwnd, gfx::Size(), false, gpu::gles2::DisallowedExtensions(), NULL, std::vector(), NULL)) { -- cgit v1.1