Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(314)

Unified Diff: content/renderer/render_widget.cc

Issue 889063002: (not for commit) Create 2nd ContextProvider for Ganesh rasterization. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/renderer/render_widget.cc
diff --git a/content/renderer/render_widget.cc b/content/renderer/render_widget.cc
index d9dbe21ce1cbb745540202a7b985521962c3e388..4faf4bdcc40b3a83052ee2e90bcb9f37db947cdf 100644
--- a/content/renderer/render_widget.cc
+++ b/content/renderer/render_widget.cc
@@ -993,6 +993,7 @@ scoped_ptr<cc::OutputSurface> RenderWidget::CreateOutputSurface(bool fallback) {
use_software = true;
scoped_refptr<ContextProviderCommandBuffer> context_provider;
+ scoped_refptr<ContextProviderCommandBuffer> worker_context_provider;
if (!use_software) {
context_provider = ContextProviderCommandBuffer::Create(
CreateGraphicsContext3D(), "RenderCompositor");
@@ -1000,28 +1001,30 @@ scoped_ptr<cc::OutputSurface> RenderWidget::CreateOutputSurface(bool fallback) {
// Cause the compositor to wait and try again.
return scoped_ptr<cc::OutputSurface>();
}
+
+ worker_context_provider = ContextProviderCommandBuffer::Create(
+ CreateGraphicsContext3D(), "RenderWorker");
+ if (!worker_context_provider.get()) {
+ // Cause the compositor to wait and try again.
+ LOG(ERROR) << "Failed to create worker context provider!!!!!!!!!";
+ return scoped_ptr<cc::OutputSurface>();
+ }
}
uint32 output_surface_id = next_output_surface_id_++;
if (command_line.HasSwitch(switches::kEnableDelegatedRenderer)) {
DCHECK(compositor_deps_->GetCompositorImplThreadTaskRunner());
- return scoped_ptr<cc::OutputSurface>(
- new DelegatedCompositorOutputSurface(routing_id(),
- output_surface_id,
- context_provider,
- frame_swap_message_queue_));
+ return scoped_ptr<cc::OutputSurface>(new DelegatedCompositorOutputSurface(
+ routing_id(), output_surface_id, context_provider,
+ worker_context_provider, frame_swap_message_queue_));
}
if (!context_provider.get()) {
scoped_ptr<cc::SoftwareOutputDevice> software_device(
new CompositorSoftwareOutputDevice());
- return scoped_ptr<cc::OutputSurface>(
- new CompositorOutputSurface(routing_id(),
- output_surface_id,
- NULL,
- software_device.Pass(),
- frame_swap_message_queue_,
- true));
+ return scoped_ptr<cc::OutputSurface>(new CompositorOutputSurface(
+ routing_id(), output_surface_id, NULL, NULL, software_device.Pass(),
+ frame_swap_message_queue_, true));
}
if (command_line.HasSwitch(cc::switches::kCompositeToMailbox)) {
@@ -1032,22 +1035,16 @@ scoped_ptr<cc::OutputSurface> RenderWidget::CreateOutputSurface(bool fallback) {
cc::ResourceFormat format = cc::RGBA_8888;
if (base::SysInfo::IsLowEndDevice())
format = cc::RGB_565;
- return scoped_ptr<cc::OutputSurface>(
- new MailboxOutputSurface(routing_id(),
- output_surface_id,
- context_provider,
- scoped_ptr<cc::SoftwareOutputDevice>(),
- frame_swap_message_queue_,
- format));
+ return scoped_ptr<cc::OutputSurface>(new MailboxOutputSurface(
+ routing_id(), output_surface_id, context_provider,
+ worker_context_provider, scoped_ptr<cc::SoftwareOutputDevice>(),
+ frame_swap_message_queue_, format));
}
bool use_swap_compositor_frame_message = false;
- return scoped_ptr<cc::OutputSurface>(
- new CompositorOutputSurface(routing_id(),
- output_surface_id,
- context_provider,
- scoped_ptr<cc::SoftwareOutputDevice>(),
- frame_swap_message_queue_,
- use_swap_compositor_frame_message));
+ return scoped_ptr<cc::OutputSurface>(new CompositorOutputSurface(
+ routing_id(), output_surface_id, context_provider,
+ worker_context_provider, scoped_ptr<cc::SoftwareOutputDevice>(),
+ frame_swap_message_queue_, use_swap_compositor_frame_message));
}
void RenderWidget::OnSwapBuffersAborted() {
« no previous file with comments | « content/renderer/gpu/mailbox_output_surface.cc ('k') | content/test/web_layer_tree_view_impl_for_testing.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698