| Index: gpu/ipc/service/direct_composition_surface_win.cc
|
| diff --git a/gpu/ipc/service/direct_composition_surface_win.cc b/gpu/ipc/service/direct_composition_surface_win.cc
|
| index 7f65213481bc0c2f4b7a61aa60731668c3259097..4ae4d005e6f905d0565509ea11980986180dc75d 100644
|
| --- a/gpu/ipc/service/direct_composition_surface_win.cc
|
| +++ b/gpu/ipc/service/direct_composition_surface_win.cc
|
| @@ -9,6 +9,7 @@
|
| #include "gpu/ipc/service/gpu_channel_manager.h"
|
| #include "gpu/ipc/service/gpu_channel_manager_delegate.h"
|
| #include "gpu/ipc/service/switches.h"
|
| +#include "ui/base/ui_base_switches.h"
|
| #include "ui/gfx/native_widget_types.h"
|
| #include "ui/gl/egl_util.h"
|
| #include "ui/gl/gl_angle_util_win.h"
|
| @@ -167,9 +168,13 @@ void DirectCompositionSurfaceWin::ReleaseCurrentSurface() {
|
| void DirectCompositionSurfaceWin::InitializeSurface() {
|
| DCHECK(!dcomp_surface_);
|
| DCHECK(!swap_chain_);
|
| + DXGI_FORMAT output_format =
|
| + base::CommandLine::ForCurrentProcess()->HasSwitch(switches::kEnableHDR)
|
| + ? DXGI_FORMAT_R16G16B16A16_FLOAT
|
| + : DXGI_FORMAT_B8G8R8A8_UNORM;
|
| if (enable_dc_layers_) {
|
| HRESULT hr = dcomp_device_->CreateSurface(
|
| - size_.width(), size_.height(), DXGI_FORMAT_B8G8R8A8_UNORM,
|
| + size_.width(), size_.height(), output_format,
|
| DXGI_ALPHA_MODE_PREMULTIPLIED, dcomp_surface_.Receive());
|
| has_been_rendered_to_ = false;
|
| CHECK(SUCCEEDED(hr));
|
| @@ -184,7 +189,7 @@ void DirectCompositionSurfaceWin::InitializeSurface() {
|
| DXGI_SWAP_CHAIN_DESC1 desc = {};
|
| desc.Width = size_.width();
|
| desc.Height = size_.height();
|
| - desc.Format = DXGI_FORMAT_B8G8R8A8_UNORM;
|
| + desc.Format = output_format;
|
| desc.Stereo = FALSE;
|
| desc.SampleDesc.Count = 1;
|
| desc.BufferCount = 2;
|
|
|