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

Side by Side Diff: content/browser/compositor/gpu_process_transport_factory.cc

Issue 2247173002: gpu: Use GpuMemoryBufferManager from GpuService when possible. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@mus-gpu-memory-buffer-manager
Patch Set: Created 4 years, 4 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/browser/compositor/gpu_process_transport_factory.h" 5 #include "content/browser/compositor/gpu_process_transport_factory.h"
6 6
7 #include <string> 7 #include <string>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 470 matching lines...) Expand 10 before | Expand all | Expand 10 after
481 context_provider, compositor->vsync_manager(), 481 context_provider, compositor->vsync_manager(),
482 begin_frame_source.get(), 482 begin_frame_source.get(),
483 std::unique_ptr<display_compositor:: 483 std::unique_ptr<display_compositor::
484 CompositorOverlayCandidateValidator>())); 484 CompositorOverlayCandidateValidator>()));
485 } else if (capabilities.surfaceless) { 485 } else if (capabilities.surfaceless) {
486 #if defined(OS_MACOSX) 486 #if defined(OS_MACOSX)
487 display_output_surface = base::WrapUnique(new GpuOutputSurfaceMac( 487 display_output_surface = base::WrapUnique(new GpuOutputSurfaceMac(
488 context_provider, data->surface_handle, compositor->vsync_manager(), 488 context_provider, data->surface_handle, compositor->vsync_manager(),
489 begin_frame_source.get(), 489 begin_frame_source.get(),
490 CreateOverlayCandidateValidator(compositor->widget()), 490 CreateOverlayCandidateValidator(compositor->widget()),
491 BrowserGpuMemoryBufferManager::current())); 491 GetGpuMemoryBufferManager()));
492 #else 492 #else
493 display_output_surface = 493 display_output_surface =
494 base::WrapUnique(new GpuSurfacelessBrowserCompositorOutputSurface( 494 base::WrapUnique(new GpuSurfacelessBrowserCompositorOutputSurface(
495 context_provider, data->surface_handle, 495 context_provider, data->surface_handle,
496 compositor->vsync_manager(), begin_frame_source.get(), 496 compositor->vsync_manager(), begin_frame_source.get(),
497 CreateOverlayCandidateValidator(compositor->widget()), 497 CreateOverlayCandidateValidator(compositor->widget()),
498 GL_TEXTURE_2D, GL_RGB, ui::DisplaySnapshot::PrimaryFormat(), 498 GL_TEXTURE_2D, GL_RGB, ui::DisplaySnapshot::PrimaryFormat(),
499 BrowserGpuMemoryBufferManager::current())); 499 GetGpuMemoryBufferManager()));
500 #endif 500 #endif
501 } else { 501 } else {
502 std::unique_ptr<display_compositor::CompositorOverlayCandidateValidator> 502 std::unique_ptr<display_compositor::CompositorOverlayCandidateValidator>
503 validator; 503 validator;
504 const bool use_mus = IsUsingMus(); 504 const bool use_mus = IsUsingMus();
505 #if !defined(OS_MACOSX) 505 #if !defined(OS_MACOSX)
506 // Overlays are only supported on surfaceless output surfaces on Mac. 506 // Overlays are only supported on surfaceless output surfaces on Mac.
507 if (!use_mus) 507 if (!use_mus)
508 validator = CreateOverlayCandidateValidator(compositor->widget()); 508 validator = CreateOverlayCandidateValidator(compositor->widget());
509 #endif 509 #endif
(...skipping 27 matching lines...) Expand all
537 compositor->widget()); 537 compositor->widget());
538 #endif 538 #endif
539 539
540 std::unique_ptr<cc::DisplayScheduler> scheduler(new cc::DisplayScheduler( 540 std::unique_ptr<cc::DisplayScheduler> scheduler(new cc::DisplayScheduler(
541 begin_frame_source.get(), compositor->task_runner().get(), 541 begin_frame_source.get(), compositor->task_runner().get(),
542 display_output_surface->capabilities().max_frames_pending)); 542 display_output_surface->capabilities().max_frames_pending));
543 543
544 // The Display owns and uses the |display_output_surface| created above. 544 // The Display owns and uses the |display_output_surface| created above.
545 data->display = base::MakeUnique<cc::Display>( 545 data->display = base::MakeUnique<cc::Display>(
546 HostSharedBitmapManager::current(), 546 HostSharedBitmapManager::current(),
547 BrowserGpuMemoryBufferManager::current(), 547 GetGpuMemoryBufferManager(),
548 compositor->GetRendererSettings(), std::move(begin_frame_source), 548 compositor->GetRendererSettings(), std::move(begin_frame_source),
549 std::move(display_output_surface), std::move(scheduler), 549 std::move(display_output_surface), std::move(scheduler),
550 base::MakeUnique<cc::TextureMailboxDeleter>( 550 base::MakeUnique<cc::TextureMailboxDeleter>(
551 compositor->task_runner().get())); 551 compositor->task_runner().get()));
552 552
553 // The |delegated_output_surface| is given back to the compositor, it 553 // The |delegated_output_surface| is given back to the compositor, it
554 // delegates to the Display as its root surface. Importantly, it shares the 554 // delegates to the Display as its root surface. Importantly, it shares the
555 // same ContextProvider as the Display's output surface. 555 // same ContextProvider as the Display's output surface.
556 std::unique_ptr<cc::SurfaceDisplayOutputSurface> delegated_output_surface( 556 std::unique_ptr<cc::SurfaceDisplayOutputSurface> delegated_output_surface(
557 vulkan_context_provider 557 vulkan_context_provider
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
636 gfx::BufferUsage usage) { 636 gfx::BufferUsage usage) {
637 return BrowserGpuMemoryBufferManager::GetImageTextureTarget(format, usage); 637 return BrowserGpuMemoryBufferManager::GetImageTextureTarget(format, usage);
638 } 638 }
639 639
640 cc::SharedBitmapManager* GpuProcessTransportFactory::GetSharedBitmapManager() { 640 cc::SharedBitmapManager* GpuProcessTransportFactory::GetSharedBitmapManager() {
641 return HostSharedBitmapManager::current(); 641 return HostSharedBitmapManager::current();
642 } 642 }
643 643
644 gpu::GpuMemoryBufferManager* 644 gpu::GpuMemoryBufferManager*
645 GpuProcessTransportFactory::GetGpuMemoryBufferManager() { 645 GpuProcessTransportFactory::GetGpuMemoryBufferManager() {
646 return BrowserGpuMemoryBufferManager::current(); 646 return gpu_channel_factory_->GetGpuMemoryBufferManager();
647 } 647 }
648 648
649 cc::TaskGraphRunner* GpuProcessTransportFactory::GetTaskGraphRunner() { 649 cc::TaskGraphRunner* GpuProcessTransportFactory::GetTaskGraphRunner() {
650 return task_graph_runner_.get(); 650 return task_graph_runner_.get();
651 } 651 }
652 652
653 ui::ContextFactory* GpuProcessTransportFactory::GetContextFactory() { 653 ui::ContextFactory* GpuProcessTransportFactory::GetContextFactory() {
654 return this; 654 return this;
655 } 655 }
656 656
(...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after
861 shared_vulkan_context_provider_ = 861 shared_vulkan_context_provider_ =
862 cc::VulkanInProcessContextProvider::Create(); 862 cc::VulkanInProcessContextProvider::Create();
863 } 863 }
864 864
865 shared_vulkan_context_provider_initialized_ = true; 865 shared_vulkan_context_provider_initialized_ = true;
866 } 866 }
867 return shared_vulkan_context_provider_; 867 return shared_vulkan_context_provider_;
868 } 868 }
869 869
870 } // namespace content 870 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/browser_main_loop.cc ('k') | content/browser/gpu/browser_gpu_channel_host_factory.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698