New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 802038 link

Starred by 4 users

Issue metadata

Status: WontFix
Owner:
Closed: Apr 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Windows
Pri: 2
Type: Bug



Sign in to add a comment

High GPU usage on video playback

Reported by sumon.ah...@gmail.com, Jan 15 2018

Issue description

UserAgent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36

Example URL:
https://www.twitch.tv/videos/218282245

Steps to reproduce the problem:
1. Go to the link: https://www.twitch.tv/videos/218282245
2. Chrome should use only discrete GPU
3. It does not use HW acceleration properly.Seems like chrome always use double the GPU usage needed to be used.Chrome always copy its content to Desktop Window Manager resuling in unnecessary gpu usage.

What is the expected behavior?
Chrome should use hardware acceleration of descrete GPU

What went wrong?
Chrome is not using hardware acceleration properly.I do not see chrome using ,"Video Decoding"/"Video Processing" like edge.

Did this work before? N/A 

Is it a problem with Flash or HTML5? HTML5

Does this work in other browsers? Yes

Chrome version: 63.0.3239.132  Channel: stable
OS Version: 10.0
Flash Version: 

Contents of chrome://gpu: 
Note: To properly save this page, select the "Webpage, Complete" option in the Save File dialog.
Graphics Feature Status
Canvas: Hardware accelerated
CheckerImaging: Force enabled
Flash: Hardware accelerated
Flash Stage3D: Hardware accelerated
Flash Stage3D Baseline profile: Hardware accelerated
Compositing: Hardware accelerated
Multiple Raster Threads: Enabled
Native GpuMemoryBuffers: Software only. Hardware acceleration disabled
Rasterization: Hardware accelerated
Video Decode: Hardware accelerated
Video Encode: Hardware accelerated
WebGL: Hardware accelerated
WebGL2: Hardware accelerated
Problems Detected
Native GpuMemoryBuffers have been disabled, either via about:flags or command line.
Disabled Features: native_gpu_memory_buffers
Version Information
Data exported	1/15/2018, 7:55:05 PM
Chrome version	Chrome/63.0.3239.132
Operating system	Windows NT 10.0.16299
Software rendering list version	13.13
Driver bug list version	0
ANGLE commit id	2ff870db3a3b
2D graphics backend	Skia/63 dbae7001c9805fb0a4b18fd0cbc889941cb39db4-
Command Line	"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --disable-gpu-sandbox --disable-gpu-driver-bug-workarounds --enable-accelerated-vpx-decode=0x1 --force-overlay-fullscreen-video --enable-hardware-overlays --enable-direct-composition-layers --flag-switches-begin --enable-checker-imaging --enable-zero-copy --force-color-profile=srgb --reduced-referrer-granularity --save-page-as-mhtml --enable-features=LoadingWithMojo --flag-switches-end
Driver Information
Initialization time	335
In-process GPU	false
Passthrough Command Decoder	false
Supports overlays	true
Sandboxed	false
GPU0	VENDOR = 0x8086, DEVICE= 0x191b
GPU1	VENDOR = 0x10de, DEVICE= 0x139b *ACTIVE*
Optimus	false
Optimus	false
AMD switchable	false
Desktop compositing	Aero Glass
Diagonal Monitor Size of \\.\DISPLAY1	15.6"
Driver vendor	Intel Corporation
Driver version	23.20.16.4901
Driver date	12-18-2017
Pixel shader version	5.0
Vertex shader version	5.0
Max. MSAA samples	8
Machine model name	
Machine model version	
GL_VENDOR	Google Inc.
GL_RENDERER	ANGLE (NVIDIA GeForce GTX 960M Direct3D11 vs_5_0 ps_5_0)
GL_VERSION	OpenGL ES 3.0 (ANGLE 2.1.0.2ff870db3a3b)
GL_EXTENSIONS	GL_ANGLE_client_arrays GL_ANGLE_depth_texture GL_ANGLE_framebuffer_blit GL_ANGLE_framebuffer_multisample GL_ANGLE_instanced_arrays GL_ANGLE_lossy_etc_decode GL_ANGLE_multiview GL_ANGLE_pack_reverse_row_order GL_ANGLE_program_cache_control GL_ANGLE_request_extension GL_ANGLE_robust_client_memory GL_ANGLE_texture_compression_dxt3 GL_ANGLE_texture_compression_dxt5 GL_ANGLE_texture_usage GL_ANGLE_translated_shader_source GL_CHROMIUM_bind_generates_resource GL_CHROMIUM_bind_uniform_location GL_CHROMIUM_color_buffer_float_rgb GL_CHROMIUM_color_buffer_float_rgba GL_CHROMIUM_copy_compressed_texture GL_CHROMIUM_copy_texture GL_CHROMIUM_sync_query GL_EXT_blend_minmax GL_EXT_color_buffer_float GL_EXT_color_buffer_half_float GL_EXT_debug_marker GL_EXT_discard_framebuffer GL_EXT_disjoint_timer_query GL_EXT_draw_buffers GL_EXT_frag_depth GL_EXT_map_buffer_range GL_EXT_occlusion_query_boolean GL_EXT_read_format_bgra GL_EXT_robustness GL_EXT_sRGB GL_EXT_shader_texture_lod GL_EXT_texture_compression_dxt1 GL_EXT_texture_compression_s3tc_srgb GL_EXT_texture_filter_anisotropic GL_EXT_texture_format_BGRA8888 GL_EXT_texture_norm16 GL_EXT_texture_rg GL_EXT_texture_storage GL_EXT_unpack_subimage GL_KHR_debug GL_NV_EGL_stream_consumer_external GL_NV_fence GL_NV_pack_subimage GL_NV_pixel_buffer_object GL_OES_EGL_image GL_OES_EGL_image_external GL_OES_EGL_image_external_essl3 GL_OES_compressed_ETC1_RGB8_texture GL_OES_depth32 GL_OES_element_index_uint GL_OES_get_program_binary GL_OES_mapbuffer GL_OES_packed_depth_stencil GL_OES_rgb8_rgba8 GL_OES_standard_derivatives GL_OES_surfaceless_context GL_OES_texture_float GL_OES_texture_float_linear GL_OES_texture_half_float GL_OES_texture_half_float_linear GL_OES_texture_npot GL_OES_vertex_array_object
Disabled Extensions	
Window system binding vendor	Google Inc. (adapter LUID: 000000000000a153)
Window system binding version	1.4 (ANGLE 2.1.0.2ff870db3a3b)
Window system binding extensions	EGL_EXT_create_context_robustness EGL_ANGLE_d3d_share_handle_client_buffer EGL_ANGLE_d3d_texture_client_buffer EGL_ANGLE_surface_d3d_texture_2d_share_handle EGL_ANGLE_query_surface_pointer EGL_ANGLE_window_fixed_size EGL_ANGLE_keyed_mutex EGL_ANGLE_surface_orientation EGL_ANGLE_direct_composition EGL_NV_post_sub_buffer EGL_KHR_create_context EGL_EXT_device_query EGL_KHR_image EGL_KHR_image_base EGL_KHR_gl_texture_2D_image EGL_KHR_gl_texture_cubemap_image EGL_KHR_gl_renderbuffer_image EGL_KHR_get_all_proc_addresses EGL_KHR_stream EGL_KHR_stream_consumer_gltexture EGL_NV_stream_consumer_gltexture_yuv EGL_ANGLE_flexible_surface_compatibility EGL_ANGLE_stream_producer_d3d_texture_nv12 EGL_ANGLE_create_context_webgl_compatibility EGL_CHROMIUM_create_context_bind_generates_resource EGL_CHROMIUM_sync_control EGL_EXT_pixel_format_float EGL_KHR_surfaceless_context EGL_ANGLE_display_texture_share_group EGL_ANGLE_create_context_client_arrays EGL_ANGLE_program_cache_control EGL_ANGLE_robust_resource_initialization
Direct rendering	Yes
Reset notification strategy	0x8252
GPU process crash count	0
Compositor Information
Tile Update Mode	Zero-copy
Partial Raster	Enabled
GpuMemoryBuffers Status
ATC	Software only
ATCIA	Software only
DXT1	Software only
DXT5	Software only
ETC1	Software only
R_8	Software only
R_16	Software only
RG_88	Software only
BGR_565	Software only
RGBA_4444	Software only
RGBX_8888	Software only
RGBA_8888	Software only
BGRX_8888	Software only
BGRA_8888	Software only
RGBA_F16	Software only
YVU_420	Software only
YUV_420_BIPLANAR	Software only
UYVY_422	Software only
Display(s) Information
Info	Display[2528732444] bounds=0,0 1536x864, workarea=0,0 1536x834, scale=2.5, external
Color space information	{primaries:BT709, transfer:IEC61966_2_1, matrix:RGB, range:FULL, icc_profile_id:0}
Bits per color component	8
Bits per pixel	24
Diagnostics
0
b3DAccelerationEnabled	true
b3DAccelerationExists	true
bAGPEnabled	true
bAGPExistenceValid	true
bAGPExists	true
bCanRenderWindow	true
bDDAccelerationEnabled	true
bDriverBeta	false
bDriverDebug	false
bDriverSigned	false
bDriverSignedValid	false
bNoHardware	false
dwBpp	32
dwDDIVersion	12
dwHeight	2160
dwRefreshRate	60
dwWHQLLevel	0
dwWidth	3840
iAdapter	0
lDriverSize	50409624
lMiniVddSize	0
szAGPStatusEnglish	Enabled
szAGPStatusLocalized	Enabled
szChipType	Intel(R) HD Graphics Family
szD3DStatusEnglish	Enabled
szD3DStatusLocalized	Enabled
szDACType	Internal
szDDIVersionEnglish	12
szDDIVersionLocalized	12
szDDStatusEnglish	Enabled
szDDStatusLocalized	Enabled
szDXVAHDEnglish	Supported
szDXVAModes	ModeMPEG2_A ModeMPEG2_C ModeWMV9_C ModeVC1_C
szDescription	Intel(R) HD Graphics 530
szDeviceId	0x191B
szDeviceIdentifier	{D7B71E3E-50DB-11CF-E751-E92618C2DA35}
szDeviceName	\\.\DISPLAY1
szDisplayMemoryEnglish	8229 MB
szDisplayMemoryLocalized	8229 MB
szDisplayModeEnglish	3840 x 2160 (32 bit) (60Hz)
szDisplayModeLocalized	3840 x 2160 (32 bit) (60Hz)
szDriverAssemblyVersion	23.20.16.4901
szDriverAttributes	Final Retail
szDriverDateEnglish	18-Dec-17 6:00:00 AM
szDriverDateLocalized	12/18/2017 06:00:00
szDriverLanguageEnglish	English
szDriverLanguageLocalized	English
szDriverModelEnglish	WDDM 2.1
szDriverModelLocalized	WDDM 2.1
szDriverName	C:\WINDOWS\System32\DriverStore\FileRepository\igdlh64.inf_amd64_daa5fd44d52a5762\igdumdim64.dll,C:\WINDOWS\System32\DriverStore\FileRepository\igdlh64.inf_amd64_daa5fd44d52a5762\igd10iumd64.dll,C:\WINDOWS\System32\DriverStore\FileRepository\igdlh64.inf_amd64_daa5fd44d52a5762\igd10iumd64.dll,C:\WINDOWS\System32\DriverStore\FileRepository\igdlh64.inf_amd64_daa5fd44d52a5762\igd12umd64.dll
szDriverNodeStrongName	oem9.inf:5f63e5340a14bf6c:iSKLD_w10_DS:23.20.16.4901:pci\ven_8086&dev_191b
szDriverSignDate	Unknown
szDriverVersion	23.20.0016.4901
szKeyDeviceID	Enum\PCI\VEN_8086&DEV_191B&SUBSYS_06E41028&REV_06
szKeyDeviceKey	\Registry\Machine\System\CurrentControlSet\Control\Video\{66710D94-C4B1-11E7-8A53-806E6F6E6963}\0000
szManufacturer	Intel Corporation
szMiniVdd	unknown
szMiniVddDateEnglish	Unknown
szMiniVddDateLocalized	unknown
szMonitorMaxRes	Unknown
szMonitorName	Generic PnP Monitor
szNotesEnglish	No problems found.
szNotesLocalized	No problems found.
szOverlayEnglish	Not Supported
szRankOfInstalledDriver	00D12001
szRegHelpText	Unknown
szRevision	Unknown
szRevisionId	0x0006
szSubSysId	0x06E41028
szTestResultD3D7English	Not run
szTestResultD3D7Localized	Not run
szTestResultD3D8English	Not run
szTestResultD3D8Localized	Not run
szTestResultD3D9English	Not run
szTestResultD3D9Localized	Not run
szTestResultDDEnglish	Not run
szTestResultDDLocalized	Not run
szVdd	unknown
szVendorId	0x8086
1
b3DAccelerationEnabled	true
b3DAccelerationExists	false
bAGPEnabled	true
bAGPExistenceValid	false
bAGPExists	false
bCanRenderWindow	false
bDDAccelerationEnabled	true
bDriverBeta	false
bDriverDebug	false
bDriverSigned	false
bDriverSignedValid	false
bNoHardware	false
dwBpp	0
dwDDIVersion	0
dwHeight	0
dwRefreshRate	0
dwWHQLLevel	0
dwWidth	0
iAdapter	0
lDriverSize	927976
lMiniVddSize	0
szAGPStatusEnglish	Enabled
szAGPStatusLocalized	Enabled
szChipType	GeForce GTX 960M
szD3DStatusEnglish	Not Available
szD3DStatusLocalized	Not Available
szDACType	Integrated RAMDAC
szDDIVersionEnglish	unknown
szDDIVersionLocalized	unknown
szDDStatusEnglish	Enabled
szDDStatusLocalized	Enabled
szDXVAHDEnglish	Unknown
szDXVAModes	Unknown
szDescription	NVIDIA GeForce GTX 960M
szDeviceId	0x139B
szDeviceIdentifier	Unknown
szDeviceName	Unknown
szDisplayMemoryEnglish	Unknown
szDisplayMemoryLocalized	unknown
szDisplayModeEnglish	Unknown
szDisplayModeLocalized	unknown
szDriverAssemblyVersion	23.21.13.8831
szDriverAttributes	Final Retail
szDriverDateEnglish	14-Nov-17 6:00:00 AM
szDriverDateLocalized	11/14/2017 06:00:00
szDriverLanguageEnglish	English
szDriverLanguageLocalized	English
szDriverModelEnglish	WDDM 2.3
szDriverModelLocalized	WDDM 2.3
szDriverName	C:\WINDOWS\System32\DriverStore\FileRepository\nvdmi.inf_amd64_06be2a2ddf160ea8\nvldumdx.dll,C:\WINDOWS\System32\DriverStore\FileRepository\nvdmi.inf_amd64_06be2a2ddf160ea8\nvldumdx.dll,C:\WINDOWS\System32\DriverStore\FileRepository\nvdmi.inf_amd64_06be2a2ddf160ea8\nvldumdx.dll,C:\WINDOWS\System32\DriverStore\FileRepository\nvdmi.inf_amd64_06be2a2ddf160ea8\nvldumdx.dll
szDriverNodeStrongName	oem20.inf:0f066de379c1b3f2:Section208:23.21.13.8831:pci\ven_10de&dev_139b&subsys_06e41028
szDriverSignDate	Unknown
szDriverVersion	23.21.0013.8831
szKeyDeviceID	Enum\PCI\VEN_10DE&DEV_139B&SUBSYS_06E41028&REV_A2
szKeyDeviceKey	Unknown
szManufacturer	NVIDIA
szMiniVdd	unknown
szMiniVddDateEnglish	Unknown
szMiniVddDateLocalized	unknown
szMonitorMaxRes	Unknown
szMonitorName	Unknown
szNotesEnglish	No problems found.
szNotesLocalized	No problems found.
szOverlayEnglish	Unknown
szRankOfInstalledDriver	00D10001
szRegHelpText	Unknown
szRevision	Unknown
szRevisionId	0x00A2
szSubSysId	0x06E41028
szTestResultD3D7English	Not run
szTestResultD3D7Localized	Not run
szTestResultD3D8English	Not run
szTestResultD3D8Localized	Not run
szTestResultD3D9English	Not run
szTestResultD3D9Localized	Not run
szTestResultDDEnglish	Not run
szTestResultDDLocalized	Not run
szVdd	unknown
szVendorId	0x10DE
Log Messages
GpuProcessHostUIShim: The GPU process exited normally. Everything is okay.
[8776:4064:0115/192313.182:ERROR:mf_helpers.cc(14)] : Error in dxva_video_decode_accelerator_win.cc on line 1615
[8776:4064:0115/192313.182:ERROR:mf_helpers.cc(14)] : Error in dxva_video_decode_accelerator_win.cc on line 694
[8776:4064:0115/192313.183:ERROR:gpu_video_decode_accelerator.cc(367)] : HW video decode not available for profile vp9 profile0
[8776:4064:0115/192442.943:ERROR:mf_helpers.cc(14)] : Error in dxva_video_decode_accelerator_win.cc on line 1615
[8776:4064:0115/192442.943:ERROR:mf_helpers.cc(14)] : Error in dxva_video_decode_accelerator_win.cc on line 694
[8776:4064:0115/192442.943:ERROR:gpu_video_decode_accelerator.cc(367)] : HW video decode not available for profile vp9 profile0
[8776:4064:0115/192653.189:ERROR:mf_helpers.cc(14)] : Error in dxva_video_decode_accelerator_win.cc on line 1615
[8776:4064:0115/192653.190:ERROR:mf_helpers.cc(14)] : Error in dxva_video_decode_accelerator_win.cc on line 694
[8776:4064:0115/192653.190:ERROR:gpu_video_decode_accelerator.cc(367)] : HW video decode not available for profile vp9 profile0
[8776:4064:0115/194555.748:ERROR:mf_helpers.cc(14)] : Error in dxva_video_decode_accelerator_win.cc on line 1615
[8776:4064:0115/194555.748:ERROR:mf_helpers.cc(14)] : Error in dxva_video_decode_accelerator_win.cc on line 694
[8776:4064:0115/194555.748:ERROR:gpu_video_decode_accelerator.cc(367)] : HW video decode not available for profile vp9 profile0

Please compare the 2 images.No matter which GPU i use,chrome always tries to copy its buffer back to DWM resulting in GPU overhead.I tried using Intel GPU/Discrete GPU.I also tried the *overlays* flags so chrome directly renders videos to Memory ,but seems like something is not working?
 
chrome.PNG
1.3 MB View Download
edge.png
2.9 MB View Download
Looks like chrome uses "Video Decode" properly only when the video is fullscreen and there is other UI.Please look at the following screenshot and observe difference in CPU/GPU usage.
NOTE: Similiar behaviour is observed even if i choose dGPU.Looks like chrome handles video differently(or efficiently) when its fullscreen + no other UI elements.
chrome_intel.PNG
3.7 MB View Download
chorme_no_ui.png
2.1 MB View Download
Labels: Needs-Triage-M63
Cc: susanjun...@techmahindra.com
Labels: Triaged-ET TE-NeedsTriageFromHYD
sumon.ahmed511@ Thanks for the issue.

Tested this issue on Windows 10 on the latest Canary 65.0.3325.0 and Stable 63.0.3239.132 by following the below steps.

1. Launched Chrome and navigated to the given link https://www.twitch.tv/videos/218282245.
2. Launched Windows task Manager and cannot observe the option GPU engine to test this issue.
Attached is the screen shot for reference.

Below are the GPU details :
Operating system : Windows NT 10.0.15063
GL_VENDOR	 : Google Inc.
GL_RENDERER	 : ANGLE (NVIDIA NVS 315 Direct3D11 vs_5_0 ps_5_0)
GL_VERSION	 : OpenGL ES 3.0 (ANGLE 2.1.0.2ff870db3a3b)

Probably GPU Engine option may be seen on the latest version of Windows 10. 
Hence adding TE-NeedsTriageFromHYD label and requesting someone from In-house team to please look into this issue and help in further triaging. 

Thanks..


802038.png
453 KB View Download
@susanjun GPU tab is introduced in fall creators update.You can enable GPU monitoring in task manager by right clicking and ticking.

Alternatively you can use other GPU monitoring utility like GPU-Z to monitor gpu usage.but Windows task manager gives you precise GPU usage categorized by process.
why is this bug being abandoned like this? anyone wanna comment on this double gpu usage.
Can you try Chrome canary 65.0.3317.0+? I recently updated our implementation there after some information from Microsoft came back,  issue 728296 .
looks like its even worse on canary.please look at screenshot.I've run with following flags:
"C:\Users\tiger\AppData\Local\Google\Chrome SxS\Application\chrome.exe" --enable-hardware-overlays --enable-direct-composition-layers --enable-features=DirectCompositionUnderlays,DirectCompositionComplexOverlays --flag-switches-begin --enable-zero-copy --force-color-profile=srgb --flag-switches-end
canary.PNG
1.5 MB View Download
Chrome 63/canary 65 works works properly when the video is Fullscreen+ No player UI + the following flags are set:

--enable-hardware-overlays --enable-direct-composition-layers


Missing any of the above points results in High GPU usage for desktop manager and chrome(im talking about 40% each) when watching videos on youtube/twitch.
Components: -Internals>Media Internals>Compositing Internals>Media>Hardware
Status: Untriaged (was: Unconfirmed)
anybody in composition team can take a look? 
BTW, I don't repro this bug on win10+65.0.3325.18
Cc: liber...@chromium.org
Hmm, those flags should be on by default if your drivers aren't blacklisted. What does chrome://gpu say on Chrome Canary? +liberato
Without those flags in canary, about:gpu reports

Supports overlays	false

with those flags:

Supports overlays	true


I've attached full gpu reports.

And even with those flags , chrome use GPU video decode properly only when Video is Fullscreen+ no player ui/annotation.



withflags.htm
165 KB View Download
withoutflags.htm
168 KB View Download
Hmm, your device supports direct composition so it means the overlays are still being disabled somewhere in this path:

https://cs.chromium.org/chromium/src/gpu/ipc/service/direct_composition_surface_win.cc?l=94

I'm not sure why though.
I'll create a debug build and share it with you tomorrow for testing which should let us know where in that path we're bailing out.
@dalecue sure, i can test your build and give you report.also please note that its an Optimus device ( Intel HD 530+ GTX 960M) with latest driver from intel and nvidia.

I usually use High performance(dGPU) for chrome but this behaviour is same even with iGPU.
http://storage.googleapis.com/dalecurtis/chrome-display-logs.zip

Run it from the command line with chrome.exe --user-data-dir=.data and then attach the output of chrome://gpu which should have the logs we need.
Status: Unconfirmed (was: Untriaged)
I've run it with nvidia and intel.looks like overlay supported by default with intel gpu.So i've run a twitch 1080p video on chrome with iGPU and  edge.Chrome is using 70% GPU in total whereas edge is using 20%.Lots of extra overhear comes frfom DWM.
gpu_nvidia.htm
178 KB View Download
gpu_intel.htm
173 KB View Download
intel_gpu.PNG
2.6 MB View Download
edge_gpu.PNG
3.7 MB View Download
Cc: sunn...@chromium.org
Components: Internals>GPU>ANGLE
Hmm interesting! With the nvidia card, the OS is telling us "DXGI_ERROR_DEVICE_REMOVED" when we try enumerate it's outputs - presumably because it's still trying to use enumerate the integrated graphics card.

I'd expect we would be attempting direct composition with the discrete card.  +sunnyps, angle folks for commentary on which device should be returned by gl::QueryD3D11DeviceObjectFromANGLE() when discrete gpu is forced.
Cc: jmad...@chromium.org geoffl...@chromium.org
Owner: sunn...@chromium.org
Status: Assigned (was: Unconfirmed)
Any update on this bug?
Labels: Needs-Feedback
@sunnyps: Could you please confirm is there any recent updates available on this issue?

Thanks!!
Labels: -Needs-Feedback
I need to look into this. Maybe all we need to do is enumerate outputs on all adapters instead of failing on the active adapter. It's possible this system uses the integrated GPU for scanout always. Still the error DXGI_ERROR_DEVICE_REMOVED doesn't make sense.

I'm going to try reproducing this on a Razer Blade.
I've run the chrome-display-log version in another laptop.i've attached the chrome://gpu report for both Intregated and dGPU output.

System : HP Envy 15t
Processor: core i7-4510u
iGPU: Intel HD 4400
dGPU: Nvidia GTX 850M


intel_gpu.html
167 KB View Download
nvidia_gpu.htm
170 KB View Download
*bump*
Status: WontFix (was: Assigned)
Got around to testing on a Razer Blade. The GPU we choose depends on the preferred GPU configured in Nvidia control panel, and the custom profile for chrome.exe if there is one.

If I set discrete GPU as preferred (default on my system), the DXGI adapter says that overlays are not supported, but if I set integrated GPU as preferred, the DXGI adapter says (scaled) overlays are supported.

I even tried enumerating all adapters, and all their outputs to check if overlays are supported on any output, and the answer is no when the Nvidia GPU is selected.

Forcing overlays on lowers power usage for fullscreen because the video's layer skips DWM and flips directly to the display in that case. Without overlays, we blit the video to Chrome's backbuffer, and that has a cost.

So from Chrome side we can solve this if we disregard the user's configuration, and choose integrated over discrete GPU. So I'm going to close this as WontFix, because of the workaround of using Nvidia control panel to choose integrated GPU for Chrome.

The DXGI_ERROR_DEVICE_REMOVED is probably a red herring.
@25 , Even with intregated GPU, why does not chrome skip DWM  when not playing in fullscreen ? Is that normal by design? because i have seen different approach for Edge and Firefox.They both skip DWM GPU usage whether youtube is fullscreen or not.

Sign in to add a comment