| Index: content/browser/compositor/gpu_process_transport_factory.cc
|
| diff --git a/content/browser/compositor/gpu_process_transport_factory.cc b/content/browser/compositor/gpu_process_transport_factory.cc
|
| index fbad9cf1ea17b26b8e3d48ffd8e5bcdaa8c675d5..ff2662fe037a5713a24f83a0ffe2270a757f973c 100644
|
| --- a/content/browser/compositor/gpu_process_transport_factory.cc
|
| +++ b/content/browser/compositor/gpu_process_transport_factory.cc
|
| @@ -19,6 +19,7 @@
|
| #include "base/threading/thread_task_runner_handle.h"
|
| #include "build/build_config.h"
|
| #include "cc/base/histograms.h"
|
| +#include "cc/base/switches.h"
|
| #include "cc/output/texture_mailbox_deleter.h"
|
| #include "cc/output/vulkan_in_process_context_provider.h"
|
| #include "cc/raster/single_thread_task_graph_runner.h"
|
| @@ -57,6 +58,7 @@
|
| #include "ui/compositor/compositor_constants.h"
|
| #include "ui/compositor/compositor_switches.h"
|
| #include "ui/compositor/layer.h"
|
| +#include "ui/display/display_switches.h"
|
| #include "ui/display/types/display_snapshot.h"
|
| #include "ui/gfx/geometry/size.h"
|
| #include "ui/gfx/switches.h"
|
| @@ -211,6 +213,38 @@ GpuProcessTransportFactory::GpuProcessTransportFactory()
|
| }
|
| }
|
|
|
| + renderer_settings_.partial_swap_enabled =
|
| + !command_line->HasSwitch(switches::kUIDisablePartialSwap);
|
| +#if defined(OS_WIN)
|
| + renderer_settings_.finish_rendering_on_resize = true;
|
| +#elif defined(OS_MACOSX)
|
| + renderer_settings_.release_overlay_resources_after_gpu_query = true;
|
| +#endif
|
| + renderer_settings_.gl_composited_texture_quad_border =
|
| + command_line->HasSwitch(cc::switches::kGlCompositedTextureQuadBorder);
|
| + renderer_settings_.show_overdraw_feedback =
|
| + command_line->HasSwitch(cc::switches::kShowOverdrawFeedback);
|
| + if (command_line->HasSwitch(switches::kUIEnableRGBA4444Textures))
|
| + renderer_settings_.preferred_tile_format = cc::RGBA_4444;
|
| + renderer_settings_.enable_color_correct_rendering =
|
| + command_line->HasSwitch(switches::kEnableColorCorrectRendering) ||
|
| + command_line->HasSwitch(switches::kEnableHDR);
|
| + // Populate buffer_to_texture_target_map for all buffer usage/formats.
|
| + for (int usage_idx = 0; usage_idx <= static_cast<int>(gfx::BufferUsage::LAST);
|
| + ++usage_idx) {
|
| + gfx::BufferUsage usage = static_cast<gfx::BufferUsage>(usage_idx);
|
| + for (int format_idx = 0;
|
| + format_idx <= static_cast<int>(gfx::BufferFormat::LAST);
|
| + ++format_idx) {
|
| + gfx::BufferFormat format = static_cast<gfx::BufferFormat>(format_idx);
|
| + uint32_t target = gpu::GetImageTextureTarget(format, usage);
|
| + renderer_settings_
|
| + .buffer_to_texture_target_map[std::make_pair(usage, format)] = target;
|
| + }
|
| + }
|
| + renderer_settings_.disallow_non_exact_resource_reuse =
|
| + command_line->HasSwitch(cc::switches::kDisallowNonExactResourceReuse);
|
| +
|
| task_graph_runner_->Start("CompositorTileWorker1",
|
| base::SimpleThread::Options());
|
| #if defined(OS_WIN)
|
| @@ -596,7 +630,7 @@ void GpuProcessTransportFactory::EstablishedGpuChannel(
|
| // The Display owns and uses the |display_output_surface| created above.
|
| data->display = base::MakeUnique<cc::Display>(
|
| display_compositor::HostSharedBitmapManager::current(),
|
| - GetGpuMemoryBufferManager(), compositor->GetRendererSettings(),
|
| + GetGpuMemoryBufferManager(), renderer_settings_,
|
| compositor->frame_sink_id(), begin_frame_source,
|
| std::move(display_output_surface), std::move(scheduler),
|
| base::MakeUnique<cc::TextureMailboxDeleter>(
|
| @@ -690,12 +724,6 @@ double GpuProcessTransportFactory::GetRefreshRate() const {
|
| return 60.0;
|
| }
|
|
|
| -uint32_t GpuProcessTransportFactory::GetImageTextureTarget(
|
| - gfx::BufferFormat format,
|
| - gfx::BufferUsage usage) {
|
| - return gpu::GetImageTextureTarget(format, usage);
|
| -}
|
| -
|
| gpu::GpuMemoryBufferManager*
|
| GpuProcessTransportFactory::GetGpuMemoryBufferManager() {
|
| return gpu_channel_factory_->GetGpuMemoryBufferManager();
|
| @@ -798,6 +826,11 @@ void GpuProcessTransportFactory::SetOutputIsSecure(ui::Compositor* compositor,
|
| data->display->SetOutputIsSecure(secure);
|
| }
|
|
|
| +const cc::RendererSettings& GpuProcessTransportFactory::GetRendererSettings()
|
| + const {
|
| + return renderer_settings_;
|
| +}
|
| +
|
| void GpuProcessTransportFactory::AddObserver(
|
| ui::ContextFactoryObserver* observer) {
|
| observer_list_.AddObserver(observer);
|
|
|