Do not use direct composition if overlays are not supported |
|||
Issue descriptionSee issue 800950 for example where an old AMD driver does not work well with direct composition. zmo@ tried applying a workaround that disabled DC on all non-Intel GPUs, but that spiked GPU crash rates. Per an offline discussion with zmo@, this likely happens because although we don't use DirectCompositionSurfaceWin, GLSurfceEGL tells ANGLE to use direct composition without taking the workaround into account. The workaround is applied after initializing GL without extensions, but GLSurfaceEGL::InitializeOneOffCommon which sets g_use_direct_composition is called before that. I have a fix that removes usage of direct composition with ANGLE native surfaces, and moves all direct composition logic to DirectCompositionSurfaceWin which is used only when hardware overlays are supported. Separately we also discussed the need to simplify GLSurfaceEGL, and split out Windows and Android specific logic from it.
,
Oct 12
We have a fix in review: https://chromium-review.googlesource.com/c/chromium/src/+/1278529
,
Oct 17
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/90b4fddc3ac00c109bedfb8a395faaa3e9e49f80 commit 90b4fddc3ac00c109bedfb8a395faaa3e9e49f80 Author: Sunny Sachanandani <sunnyps@chromium.org> Date: Wed Oct 17 20:04:28 2018 Use DirectComposition only if hardware overlays are supported Before this change, we were using DirectCompositionSurfaceWin on most newer systems, but it's not needed unless hardware overlays are supported. The disable_direct_composition workaround increases crash rates because it's applied before GLSurfaceEGL decides to use direct composition with ANGLE native EGL surfaces. This change moves all direct composition logic from GLSurfaceEGL to DirectCompositionSurfaceWin, and removes use of direct composition with ANGLE surfaces. Bug: 894675 Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel Change-Id: I2e9c7c8a7ff36fe7b24868544c03aad0e0b7dad6 Reviewed-on: https://chromium-review.googlesource.com/c/1278529 Commit-Queue: Sunny Sachanandani <sunnyps@chromium.org> Reviewed-by: Zhenyao Mo <zmo@chromium.org> Reviewed-by: Antoine Labour <piman@chromium.org> Reviewed-by: Daniel Cheng <dcheng@chromium.org> Cr-Commit-Position: refs/heads/master@{#600529} [modify] https://crrev.com/90b4fddc3ac00c109bedfb8a395faaa3e9e49f80/content/browser/gpu/gpu_internals_ui.cc [modify] https://crrev.com/90b4fddc3ac00c109bedfb8a395faaa3e9e49f80/content/renderer/render_thread_impl.cc [modify] https://crrev.com/90b4fddc3ac00c109bedfb8a395faaa3e9e49f80/gpu/config/gpu_driver_bug_list.json [modify] https://crrev.com/90b4fddc3ac00c109bedfb8a395faaa3e9e49f80/gpu/config/gpu_finch_features.cc [modify] https://crrev.com/90b4fddc3ac00c109bedfb8a395faaa3e9e49f80/gpu/config/gpu_finch_features.h [modify] https://crrev.com/90b4fddc3ac00c109bedfb8a395faaa3e9e49f80/gpu/config/gpu_info.cc [modify] https://crrev.com/90b4fddc3ac00c109bedfb8a395faaa3e9e49f80/gpu/config/gpu_info.h [modify] https://crrev.com/90b4fddc3ac00c109bedfb8a395faaa3e9e49f80/gpu/config/gpu_util.cc [modify] https://crrev.com/90b4fddc3ac00c109bedfb8a395faaa3e9e49f80/gpu/ipc/common/gpu_info.mojom [modify] https://crrev.com/90b4fddc3ac00c109bedfb8a395faaa3e9e49f80/gpu/ipc/common/gpu_info_struct_traits.cc [modify] https://crrev.com/90b4fddc3ac00c109bedfb8a395faaa3e9e49f80/gpu/ipc/common/gpu_info_struct_traits.h [modify] https://crrev.com/90b4fddc3ac00c109bedfb8a395faaa3e9e49f80/gpu/ipc/common/struct_traits_unittest.cc [modify] https://crrev.com/90b4fddc3ac00c109bedfb8a395faaa3e9e49f80/gpu/ipc/service/direct_composition_child_surface_win.h [modify] https://crrev.com/90b4fddc3ac00c109bedfb8a395faaa3e9e49f80/gpu/ipc/service/direct_composition_surface_win.cc [modify] https://crrev.com/90b4fddc3ac00c109bedfb8a395faaa3e9e49f80/gpu/ipc/service/direct_composition_surface_win.h [modify] https://crrev.com/90b4fddc3ac00c109bedfb8a395faaa3e9e49f80/gpu/ipc/service/gpu_init.cc [modify] https://crrev.com/90b4fddc3ac00c109bedfb8a395faaa3e9e49f80/gpu/ipc/service/image_transport_surface_win.cc [modify] https://crrev.com/90b4fddc3ac00c109bedfb8a395faaa3e9e49f80/ui/gl/gl_surface_egl.cc [modify] https://crrev.com/90b4fddc3ac00c109bedfb8a395faaa3e9e49f80/ui/gl/gl_surface_egl.h [modify] https://crrev.com/90b4fddc3ac00c109bedfb8a395faaa3e9e49f80/ui/gl/gl_switches.cc [modify] https://crrev.com/90b4fddc3ac00c109bedfb8a395faaa3e9e49f80/ui/gl/gl_switches.h
,
Oct 17
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/deb11af029d6c3418885d3d84764bd8358f887f2 commit deb11af029d6c3418885d3d84764bd8358f887f2 Author: Sunny Sachanandani <sunnyps@chromium.org> Date: Wed Oct 17 22:58:39 2018 Revert "Use DirectComposition only if hardware overlays are supported" This reverts commit 90b4fddc3ac00c109bedfb8a395faaa3e9e49f80. Reason for revert: Causing DC test failures on WinServer2008 bots: https://ci.chromium.org/p/chromium/builders/luci.chromium.ci/Win7%20FYI%20x64%20Release%20%28NVIDIA%29/2903 Original change's description: > Use DirectComposition only if hardware overlays are supported > > Before this change, we were using DirectCompositionSurfaceWin on most > newer systems, but it's not needed unless hardware overlays are > supported. > > The disable_direct_composition workaround increases crash rates because > it's applied before GLSurfaceEGL decides to use direct composition with > ANGLE native EGL surfaces. > > This change moves all direct composition logic from GLSurfaceEGL to > DirectCompositionSurfaceWin, and removes use of direct composition with > ANGLE surfaces. > > Bug: 894675 > Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel > Change-Id: I2e9c7c8a7ff36fe7b24868544c03aad0e0b7dad6 > Reviewed-on: https://chromium-review.googlesource.com/c/1278529 > Commit-Queue: Sunny Sachanandani <sunnyps@chromium.org> > Reviewed-by: Zhenyao Mo <zmo@chromium.org> > Reviewed-by: Antoine Labour <piman@chromium.org> > Reviewed-by: Daniel Cheng <dcheng@chromium.org> > Cr-Commit-Position: refs/heads/master@{#600529} TBR=dcheng@chromium.org,zmo@chromium.org,sunnyps@chromium.org,piman@chromium.org Change-Id: Ic8ff38dddc037934dbf19267c3d027fd81c078eb No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: 894675 Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel Reviewed-on: https://chromium-review.googlesource.com/c/1287299 Reviewed-by: Sunny Sachanandani <sunnyps@chromium.org> Commit-Queue: Sunny Sachanandani <sunnyps@chromium.org> Cr-Commit-Position: refs/heads/master@{#600585} [modify] https://crrev.com/deb11af029d6c3418885d3d84764bd8358f887f2/content/browser/gpu/gpu_internals_ui.cc [modify] https://crrev.com/deb11af029d6c3418885d3d84764bd8358f887f2/content/renderer/render_thread_impl.cc [modify] https://crrev.com/deb11af029d6c3418885d3d84764bd8358f887f2/gpu/config/gpu_driver_bug_list.json [modify] https://crrev.com/deb11af029d6c3418885d3d84764bd8358f887f2/gpu/config/gpu_finch_features.cc [modify] https://crrev.com/deb11af029d6c3418885d3d84764bd8358f887f2/gpu/config/gpu_finch_features.h [modify] https://crrev.com/deb11af029d6c3418885d3d84764bd8358f887f2/gpu/config/gpu_info.cc [modify] https://crrev.com/deb11af029d6c3418885d3d84764bd8358f887f2/gpu/config/gpu_info.h [modify] https://crrev.com/deb11af029d6c3418885d3d84764bd8358f887f2/gpu/config/gpu_util.cc [modify] https://crrev.com/deb11af029d6c3418885d3d84764bd8358f887f2/gpu/ipc/common/gpu_info.mojom [modify] https://crrev.com/deb11af029d6c3418885d3d84764bd8358f887f2/gpu/ipc/common/gpu_info_struct_traits.cc [modify] https://crrev.com/deb11af029d6c3418885d3d84764bd8358f887f2/gpu/ipc/common/gpu_info_struct_traits.h [modify] https://crrev.com/deb11af029d6c3418885d3d84764bd8358f887f2/gpu/ipc/common/struct_traits_unittest.cc [modify] https://crrev.com/deb11af029d6c3418885d3d84764bd8358f887f2/gpu/ipc/service/direct_composition_child_surface_win.h [modify] https://crrev.com/deb11af029d6c3418885d3d84764bd8358f887f2/gpu/ipc/service/direct_composition_surface_win.cc [modify] https://crrev.com/deb11af029d6c3418885d3d84764bd8358f887f2/gpu/ipc/service/direct_composition_surface_win.h [modify] https://crrev.com/deb11af029d6c3418885d3d84764bd8358f887f2/gpu/ipc/service/gpu_init.cc [modify] https://crrev.com/deb11af029d6c3418885d3d84764bd8358f887f2/gpu/ipc/service/image_transport_surface_win.cc [modify] https://crrev.com/deb11af029d6c3418885d3d84764bd8358f887f2/ui/gl/gl_surface_egl.cc [modify] https://crrev.com/deb11af029d6c3418885d3d84764bd8358f887f2/ui/gl/gl_surface_egl.h [modify] https://crrev.com/deb11af029d6c3418885d3d84764bd8358f887f2/ui/gl/gl_switches.cc [modify] https://crrev.com/deb11af029d6c3418885d3d84764bd8358f887f2/ui/gl/gl_switches.h
,
Oct 18
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/3dcb5da8b925ccc5649e5737e809cc6a992b98c4 commit 3dcb5da8b925ccc5649e5737e809cc6a992b98c4 Author: Sunny Sachanandani <sunnyps@chromium.org> Date: Thu Oct 18 04:59:43 2018 Reland "Use DirectComposition only if hardware overlays are supported" This is a reland of 90b4fddc3ac00c109bedfb8a395faaa3e9e49f80 Early out from DirectComposition path if it cannot possibly be supported even if command line flags force it on. This is needed to make pixel tests which force enable DirectComposition work on Windows 7/2008 bots. Original change's description: > Use DirectComposition only if hardware overlays are supported > > Before this change, we were using DirectCompositionSurfaceWin on most > newer systems, but it's not needed unless hardware overlays are > supported. > > The disable_direct_composition workaround increases crash rates because > it's applied before GLSurfaceEGL decides to use direct composition with > ANGLE native EGL surfaces. > > This change moves all direct composition logic from GLSurfaceEGL to > DirectCompositionSurfaceWin, and removes use of direct composition with > ANGLE surfaces. > > Bug: 894675 > Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel > Change-Id: I2e9c7c8a7ff36fe7b24868544c03aad0e0b7dad6 > Reviewed-on: https://chromium-review.googlesource.com/c/1278529 > Commit-Queue: Sunny Sachanandani <sunnyps@chromium.org> > Reviewed-by: Zhenyao Mo <zmo@chromium.org> > Reviewed-by: Antoine Labour <piman@chromium.org> > Reviewed-by: Daniel Cheng <dcheng@chromium.org> > Cr-Commit-Position: refs/heads/master@{#600529} TBR=zmo@chromium.org,piman@chromium.org,dcheng@chromium.org Bug: 894675 Change-Id: Ie4322ad2cfceac2156a241b5affbc962dde24088 Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel Reviewed-on: https://chromium-review.googlesource.com/c/1287254 Reviewed-by: Sunny Sachanandani <sunnyps@chromium.org> Commit-Queue: Sunny Sachanandani <sunnyps@chromium.org> Cr-Commit-Position: refs/heads/master@{#600662} [modify] https://crrev.com/3dcb5da8b925ccc5649e5737e809cc6a992b98c4/content/browser/gpu/gpu_internals_ui.cc [modify] https://crrev.com/3dcb5da8b925ccc5649e5737e809cc6a992b98c4/content/renderer/render_thread_impl.cc [modify] https://crrev.com/3dcb5da8b925ccc5649e5737e809cc6a992b98c4/gpu/config/gpu_driver_bug_list.json [modify] https://crrev.com/3dcb5da8b925ccc5649e5737e809cc6a992b98c4/gpu/config/gpu_finch_features.cc [modify] https://crrev.com/3dcb5da8b925ccc5649e5737e809cc6a992b98c4/gpu/config/gpu_finch_features.h [modify] https://crrev.com/3dcb5da8b925ccc5649e5737e809cc6a992b98c4/gpu/config/gpu_info.cc [modify] https://crrev.com/3dcb5da8b925ccc5649e5737e809cc6a992b98c4/gpu/config/gpu_info.h [modify] https://crrev.com/3dcb5da8b925ccc5649e5737e809cc6a992b98c4/gpu/config/gpu_util.cc [modify] https://crrev.com/3dcb5da8b925ccc5649e5737e809cc6a992b98c4/gpu/ipc/common/gpu_info.mojom [modify] https://crrev.com/3dcb5da8b925ccc5649e5737e809cc6a992b98c4/gpu/ipc/common/gpu_info_struct_traits.cc [modify] https://crrev.com/3dcb5da8b925ccc5649e5737e809cc6a992b98c4/gpu/ipc/common/gpu_info_struct_traits.h [modify] https://crrev.com/3dcb5da8b925ccc5649e5737e809cc6a992b98c4/gpu/ipc/common/struct_traits_unittest.cc [modify] https://crrev.com/3dcb5da8b925ccc5649e5737e809cc6a992b98c4/gpu/ipc/service/direct_composition_child_surface_win.h [modify] https://crrev.com/3dcb5da8b925ccc5649e5737e809cc6a992b98c4/gpu/ipc/service/direct_composition_surface_win.cc [modify] https://crrev.com/3dcb5da8b925ccc5649e5737e809cc6a992b98c4/gpu/ipc/service/direct_composition_surface_win.h [modify] https://crrev.com/3dcb5da8b925ccc5649e5737e809cc6a992b98c4/gpu/ipc/service/gpu_init.cc [modify] https://crrev.com/3dcb5da8b925ccc5649e5737e809cc6a992b98c4/gpu/ipc/service/image_transport_surface_win.cc [modify] https://crrev.com/3dcb5da8b925ccc5649e5737e809cc6a992b98c4/ui/gl/gl_surface_egl.cc [modify] https://crrev.com/3dcb5da8b925ccc5649e5737e809cc6a992b98c4/ui/gl/gl_surface_egl.h [modify] https://crrev.com/3dcb5da8b925ccc5649e5737e809cc6a992b98c4/ui/gl/gl_switches.cc [modify] https://crrev.com/3dcb5da8b925ccc5649e5737e809cc6a992b98c4/ui/gl/gl_switches.h
,
Oct 30
r600662 causes Chrome to show me blank windows when I remote to a Windows machine. Running with --disable-gpu brings things back. Please revert or fix before M72 branch. Thanks. To be clear: the problem is with running chrome.exe on a machine to which I'm connected via CRD. Here's what chrome://gpu says: Graphics Feature Status Canvas: Software only, hardware acceleration unavailable Flash: Software only. Hardware acceleration disabled Flash Stage3D: Software only. Hardware acceleration disabled Flash Stage3D Baseline profile: Software only. Hardware acceleration disabled Compositing: Software only. Hardware acceleration disabled Multiple Raster Threads: Enabled Native GpuMemoryBuffers: Software only. Hardware acceleration disabled Out-of-process Rasterization: Disabled Hardware Protected Video Decode: Disabled Rasterization: Software only. Hardware acceleration disabled Skia Deferred Display List: Disabled Skia Renderer: Disabled Surface Control: Disabled Surface Synchronization: Enabled Video Decode: Software only. Hardware acceleration disabled Viz Service Display Compositor: Disabled WebGL: Software only, hardware acceleration unavailable WebGL2: Software only, hardware acceleration unavailable Problems Detected Native GpuMemoryBuffers have been disabled, either via about:flags or command line. Disabled Features: native_gpu_memory_buffers Viz service display compositor is not enabled by default. Disabled Features: viz_display_compositor Skia renderer is not used by default. Disabled Features: skia_renderer Skia deferred display list is not used by default. Disabled Features: skia_deferred_display_list Version Information Data exported 2018-10-30T10:51:37.591Z Chrome version Chrome/72.0.3596.0 Operating system Windows NT 10.0.17134 Software rendering list URL https://chromium.googlesource.com/chromium/src/+/0b292963c513fc540a19aef5251a8b28a68f6f6f/gpu/config/software_rendering_list.json Driver bug list URL https://chromium.googlesource.com/chromium/src/+/0b292963c513fc540a19aef5251a8b28a68f6f6f/gpu/config/gpu_driver_bug_list.json ANGLE commit id 0da64b5e1009 2D graphics backend Skia/72 71652e2a09b7ecfea7a8cd0b5ce39ad030e8fbea- Command Line "C:\Users\grt\AppData\Local\Google\Chrome SxS\Application\chrome.exe" --disable-gpu --flag-switches-begin --flag-switches-end Driver Information Initialization time 177 In-process GPU false Passthrough Command Decoder false Sandboxed true GPU0 VENDOR = 0x10de [Google Inc.], DEVICE= 0x13ba [Google SwiftShader] *ACTIVE* Optimus false AMD switchable false Desktop compositing Aero Glass Direct composition overlays false Overlay capabilities Driver D3D12 feature level Not supported Driver Vulkan API version Not supported Driver vendor NVIDIA Driver version 369.09 Driver date 8-1-2016 GPU CUDA compute capability major version 0 Pixel shader version 3.00 Vertex shader version 3.00 Max. MSAA samples 4 Machine model name Machine model version GL_VENDOR Google Inc. GL_RENDERER Google SwiftShader GL_VERSION OpenGL ES 3.0 SwiftShader 4.1.0.4 GL_EXTENSIONS GL_OES_compressed_ETC1_RGB8_texture GL_OES_depth24 GL_OES_depth32 GL_OES_depth_texture GL_OES_depth_texture_cube_map GL_OES_EGL_image GL_OES_EGL_image_external GL_OES_EGL_sync GL_OES_element_index_uint GL_OES_fbo_render_mipmap GL_OES_framebuffer_object 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_texture_3D GL_OES_vertex_array_object GL_OES_vertex_half_float GL_EXT_blend_minmax GL_EXT_color_buffer_float GL_EXT_color_buffer_half_float GL_EXT_draw_buffers GL_EXT_instanced_arrays GL_EXT_occlusion_query_boolean GL_EXT_read_format_bgra GL_EXT_texture_compression_dxt1 GL_EXT_texture_filter_anisotropic GL_EXT_texture_format_BGRA8888 GL_EXT_texture_rg GL_ARB_texture_rectangle GL_ANGLE_framebuffer_blit GL_ANGLE_framebuffer_multisample GL_ANGLE_instanced_arrays GL_ANGLE_texture_compression_dxt3 GL_ANGLE_texture_compression_dxt5 GL_APPLE_texture_format_BGRA8888 GL_CHROMIUM_color_buffer_float_rgba GL_CHROMIUM_texture_filtering_hint GL_NV_depth_buffer_float2 GL_NV_fence GL_NV_framebuffer_blit GL_NV_read_depth GL_NV_read_depth_stencil GL_NV_read_stencil Disabled Extensions Disabled WebGL Extensions Window system binding vendor Google Inc. Window system binding version 1.4 SwiftShader 4.1.0.4 Window system binding extensions EGL_KHR_create_context EGL_KHR_get_all_proc_addresses EGL_KHR_gl_texture_2D_image EGL_KHR_gl_texture_cubemap_image EGL_KHR_gl_renderbuffer_image EGL_KHR_fence_sync EGL_KHR_image_base EGL_KHR_surfaceless_context EGL_ANGLE_iosurface_client_buffer EGL_ANDROID_framebuffer_target EGL_ANDROID_recordable Direct rendering Yes Reset notification strategy 0x0000 GPU process crash count 1 Compositor Information Tile Update Mode One-copy Partial Raster Enabled GpuMemoryBuffers Status R_8 Software only R_16 Software only RG_88 Software only BGR_565 Software only RGBA_4444 Software only RGBX_8888 GPU_READ, SCANOUT RGBA_8888 GPU_READ, SCANOUT BGRX_8888 Software only BGRX_1010102 Software only RGBX_1010102 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 1920x1200], workarea=[0,0 1920x1160], scale=1, external. Color space information {primaries:BT709, transfer:IEC61966_2_1, matrix:RGB, range:FULL} Bits per color component 8 Bits per pixel 24 Video Acceleration Information Encode h264 baseline up to 3840x2176 pixels and/or 30.000 fps Encode h264 main up to 3840x2176 pixels and/or 30.000 fps Encode h264 high up to 3840x2176 pixels and/or 30.000 fps Diagnostics ... loading ... Driver Information for Hardware GPU Initialization time 177 In-process GPU false Passthrough Command Decoder false Sandboxed true GPU0 VENDOR = 0x10de [Google Inc.], DEVICE= 0x13ba [Google SwiftShader] *ACTIVE* Optimus false AMD switchable false Desktop compositing Aero Glass Direct composition overlays false Overlay capabilities Driver D3D12 feature level Not supported Driver Vulkan API version Not supported Driver vendor NVIDIA Driver version 369.09 Driver date 8-1-2016 GPU CUDA compute capability major version 0 Pixel shader version 3.00 Vertex shader version 3.00 Max. MSAA samples 4 Machine model name Machine model version GL_VENDOR Google Inc. GL_RENDERER Google SwiftShader GL_VERSION OpenGL ES 3.0 SwiftShader 4.1.0.4 GL_EXTENSIONS GL_OES_compressed_ETC1_RGB8_texture GL_OES_depth24 GL_OES_depth32 GL_OES_depth_texture GL_OES_depth_texture_cube_map GL_OES_EGL_image GL_OES_EGL_image_external GL_OES_EGL_sync GL_OES_element_index_uint GL_OES_fbo_render_mipmap GL_OES_framebuffer_object 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_texture_3D GL_OES_vertex_array_object GL_OES_vertex_half_float GL_EXT_blend_minmax GL_EXT_color_buffer_float GL_EXT_color_buffer_half_float GL_EXT_draw_buffers GL_EXT_instanced_arrays GL_EXT_occlusion_query_boolean GL_EXT_read_format_bgra GL_EXT_texture_compression_dxt1 GL_EXT_texture_filter_anisotropic GL_EXT_texture_format_BGRA8888 GL_EXT_texture_rg GL_ARB_texture_rectangle GL_ANGLE_framebuffer_blit GL_ANGLE_framebuffer_multisample GL_ANGLE_instanced_arrays GL_ANGLE_texture_compression_dxt3 GL_ANGLE_texture_compression_dxt5 GL_APPLE_texture_format_BGRA8888 GL_CHROMIUM_color_buffer_float_rgba GL_CHROMIUM_texture_filtering_hint GL_NV_depth_buffer_float2 GL_NV_fence GL_NV_framebuffer_blit GL_NV_read_depth GL_NV_read_depth_stencil GL_NV_read_stencil Disabled Extensions Disabled WebGL Extensions Window system binding vendor Google Inc. Window system binding version 1.4 SwiftShader 4.1.0.4 Window system binding extensions EGL_KHR_create_context EGL_KHR_get_all_proc_addresses EGL_KHR_gl_texture_2D_image EGL_KHR_gl_texture_cubemap_image EGL_KHR_gl_renderbuffer_image EGL_KHR_fence_sync EGL_KHR_image_base EGL_KHR_surfaceless_context EGL_ANGLE_iosurface_client_buffer EGL_ANDROID_framebuffer_target EGL_ANDROID_recordable Direct rendering Yes Reset notification strategy 0x0000 GPU process crash count 1 Graphics Feature Status for Hardware GPU Canvas: Software only, hardware acceleration unavailable Flash: Software only. Hardware acceleration disabled Flash Stage3D: Software only. Hardware acceleration disabled Flash Stage3D Baseline profile: Software only. Hardware acceleration disabled Compositing: Software only. Hardware acceleration disabled Multiple Raster Threads: Enabled Native GpuMemoryBuffers: Software only. Hardware acceleration disabled Out-of-process Rasterization: Disabled Hardware Protected Video Decode: Disabled Rasterization: Software only. Hardware acceleration disabled Skia Deferred Display List: Disabled Skia Renderer: Disabled Surface Control: Disabled Surface Synchronization: Enabled Video Decode: Software only. Hardware acceleration disabled Viz Service Display Compositor: Disabled WebGL: Software only, hardware acceleration unavailable WebGL2: Software only, hardware acceleration unavailable Problems Detected for Hardware GPU Native GpuMemoryBuffers have been disabled, either via about:flags or command line. Disabled Features: native_gpu_memory_buffers Viz service display compositor is not enabled by default. Disabled Features: viz_display_compositor Skia renderer is not used by default. Disabled Features: skia_renderer Skia deferred display list is not used by default. Disabled Features: skia_deferred_display_list Log Messages GpuProcessHostUIShim: The GPU process crashed! GpuProcessHostUIShim:
,
Oct 30
I can't reproduce it while CRDing to my Win10 desktop (NVIDIA) from my Win10 laptop with Chrome Beta. Can you provide the about:gpu without --disable-gpu?
,
Oct 30
You won't be able to reproduce with Chrome Beta since the CL hasn't made it to that branch. You'll need to try with Chrome Canary. I'll try reproducing later today as well.
,
Oct 30
Oh I forgot to mention: I tried with Canary also and could not reproduce.
,
Nov 8
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/eec86ff6c03b228b426a4553c89724d04e0a0f56 commit eec86ff6c03b228b426a4553c89724d04e0a0f56 Author: Sunny Sachanandani <sunnyps@chromium.org> Date: Thu Nov 08 03:20:24 2018 Reenable direct composition without video layers Reenable direct composition surface on devices without hardware overlays since it enables other power improvements like flip mode swap chain and disabling DWM redirection surface. To mitigate the original concerns about direct composition, this change makes DCLayerTree lazy initialize the video context and processor when a video layer is first used. On devices that don't support hardware overlays, the video context and processor will never be initialized. Bug: 894675 , 900702 Change-Id: I8c9d5b78718de2620ca177410d4916390e7cb219 Reviewed-on: https://chromium-review.googlesource.com/c/1318808 Commit-Queue: Sunny Sachanandani <sunnyps@chromium.org> Reviewed-by: Zhenyao Mo <zmo@chromium.org> Reviewed-by: Daniel Cheng <dcheng@chromium.org> Reviewed-by: Antoine Labour <piman@chromium.org> Cr-Commit-Position: refs/heads/master@{#606312} [modify] https://crrev.com/eec86ff6c03b228b426a4553c89724d04e0a0f56/content/browser/gpu/gpu_internals_ui.cc [modify] https://crrev.com/eec86ff6c03b228b426a4553c89724d04e0a0f56/content/renderer/render_thread_impl.cc [modify] https://crrev.com/eec86ff6c03b228b426a4553c89724d04e0a0f56/gpu/config/gpu_driver_bug_list.json [modify] https://crrev.com/eec86ff6c03b228b426a4553c89724d04e0a0f56/gpu/config/gpu_info.cc [modify] https://crrev.com/eec86ff6c03b228b426a4553c89724d04e0a0f56/gpu/config/gpu_info.h [modify] https://crrev.com/eec86ff6c03b228b426a4553c89724d04e0a0f56/gpu/config/gpu_util.cc [modify] https://crrev.com/eec86ff6c03b228b426a4553c89724d04e0a0f56/gpu/ipc/common/gpu_info.mojom [modify] https://crrev.com/eec86ff6c03b228b426a4553c89724d04e0a0f56/gpu/ipc/common/gpu_info_struct_traits.cc [modify] https://crrev.com/eec86ff6c03b228b426a4553c89724d04e0a0f56/gpu/ipc/common/gpu_info_struct_traits.h [modify] https://crrev.com/eec86ff6c03b228b426a4553c89724d04e0a0f56/gpu/ipc/common/struct_traits_unittest.cc [modify] https://crrev.com/eec86ff6c03b228b426a4553c89724d04e0a0f56/gpu/ipc/service/direct_composition_surface_win.cc [modify] https://crrev.com/eec86ff6c03b228b426a4553c89724d04e0a0f56/gpu/ipc/service/direct_composition_surface_win.h [modify] https://crrev.com/eec86ff6c03b228b426a4553c89724d04e0a0f56/gpu/ipc/service/gpu_init.cc [modify] https://crrev.com/eec86ff6c03b228b426a4553c89724d04e0a0f56/gpu/ipc/service/image_transport_surface_win.cc [modify] https://crrev.com/eec86ff6c03b228b426a4553c89724d04e0a0f56/ui/gl/gl_switches.cc [modify] https://crrev.com/eec86ff6c03b228b426a4553c89724d04e0a0f56/ui/gl/gl_switches.h
,
Nov 8
We re-enabled DirectComposition because it helps with power usage even without overlays due to the use of flip mode swap chains. However, we've made some fixes: 1) The disable_direct_composition workaround actually disables direct composition for real i.e. we won't use it in ANGLE either. 2) We don't initialize the D3D11 video processor unless overlays are used which means that we shouldn't hit the kind of crashes we've seen on older drivers. We've also reinstated the previous workarounds so problematic cases won't use direct composition at all.
,
Nov 9
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/6fb9951ce0f87e70b86cb5b12b4cca635341cbad commit 6fb9951ce0f87e70b86cb5b12b4cca635341cbad Author: Patrik Höglund <phoglund@chromium.org> Date: Fri Nov 09 12:58:40 2018 Revert "Reenable direct composition without video layers" This reverts commit eec86ff6c03b228b426a4553c89724d04e0a0f56. Reason for revert: Appears to break cc_unittests on the Linux CFI bot: https://ci.chromium.org/p/chromium/builders/luci.chromium.ci/Linux%20CFI/11190 Original change's description: > Reenable direct composition without video layers > > Reenable direct composition surface on devices without hardware overlays > since it enables other power improvements like flip mode swap chain and > disabling DWM redirection surface. > > To mitigate the original concerns about direct composition, this change > makes DCLayerTree lazy initialize the video context and processor when > a video layer is first used. On devices that don't support hardware > overlays, the video context and processor will never be initialized. > > Bug: 894675 , 900702 > Change-Id: I8c9d5b78718de2620ca177410d4916390e7cb219 > Reviewed-on: https://chromium-review.googlesource.com/c/1318808 > Commit-Queue: Sunny Sachanandani <sunnyps@chromium.org> > Reviewed-by: Zhenyao Mo <zmo@chromium.org> > Reviewed-by: Daniel Cheng <dcheng@chromium.org> > Reviewed-by: Antoine Labour <piman@chromium.org> > Cr-Commit-Position: refs/heads/master@{#606312} TBR=dcheng@chromium.org,zmo@chromium.org,sunnyps@chromium.org,piman@chromium.org # Not skipping CQ checks because original CL landed > 1 day ago. Bug: 894675 , 900702 Change-Id: I094721159277c50d9061dfded252bbac1084977f Reviewed-on: https://chromium-review.googlesource.com/c/1328965 Reviewed-by: Patrik Höglund <phoglund@chromium.org> Commit-Queue: Patrik Höglund <phoglund@chromium.org> Cr-Commit-Position: refs/heads/master@{#606810} [modify] https://crrev.com/6fb9951ce0f87e70b86cb5b12b4cca635341cbad/content/browser/gpu/gpu_internals_ui.cc [modify] https://crrev.com/6fb9951ce0f87e70b86cb5b12b4cca635341cbad/content/renderer/render_thread_impl.cc [modify] https://crrev.com/6fb9951ce0f87e70b86cb5b12b4cca635341cbad/gpu/config/gpu_driver_bug_list.json [modify] https://crrev.com/6fb9951ce0f87e70b86cb5b12b4cca635341cbad/gpu/config/gpu_info.cc [modify] https://crrev.com/6fb9951ce0f87e70b86cb5b12b4cca635341cbad/gpu/config/gpu_info.h [modify] https://crrev.com/6fb9951ce0f87e70b86cb5b12b4cca635341cbad/gpu/config/gpu_util.cc [modify] https://crrev.com/6fb9951ce0f87e70b86cb5b12b4cca635341cbad/gpu/ipc/common/gpu_info.mojom [modify] https://crrev.com/6fb9951ce0f87e70b86cb5b12b4cca635341cbad/gpu/ipc/common/gpu_info_struct_traits.cc [modify] https://crrev.com/6fb9951ce0f87e70b86cb5b12b4cca635341cbad/gpu/ipc/common/gpu_info_struct_traits.h [modify] https://crrev.com/6fb9951ce0f87e70b86cb5b12b4cca635341cbad/gpu/ipc/common/struct_traits_unittest.cc [modify] https://crrev.com/6fb9951ce0f87e70b86cb5b12b4cca635341cbad/gpu/ipc/service/direct_composition_surface_win.cc [modify] https://crrev.com/6fb9951ce0f87e70b86cb5b12b4cca635341cbad/gpu/ipc/service/direct_composition_surface_win.h [modify] https://crrev.com/6fb9951ce0f87e70b86cb5b12b4cca635341cbad/gpu/ipc/service/gpu_init.cc [modify] https://crrev.com/6fb9951ce0f87e70b86cb5b12b4cca635341cbad/gpu/ipc/service/image_transport_surface_win.cc [modify] https://crrev.com/6fb9951ce0f87e70b86cb5b12b4cca635341cbad/ui/gl/gl_switches.cc [modify] https://crrev.com/6fb9951ce0f87e70b86cb5b12b4cca635341cbad/ui/gl/gl_switches.h
,
Nov 9
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/6e844c42a37cbe452e55f77acbe662892a44ad21 commit 6e844c42a37cbe452e55f77acbe662892a44ad21 Author: Sunny Sachanandani <sunnyps@chromium.org> Date: Fri Nov 09 20:27:12 2018 Reland "Reenable direct composition without video layers" This reverts commit 6fb9951ce0f87e70b86cb5b12b4cca635341cbad. Reason for revert: Not responsible for test failures. See crbug.com/903931 Original change's description: > Revert "Reenable direct composition without video layers" > > This reverts commit eec86ff6c03b228b426a4553c89724d04e0a0f56. > > Reason for revert: Appears to break cc_unittests on the Linux CFI bot: https://ci.chromium.org/p/chromium/builders/luci.chromium.ci/Linux%20CFI/11190 > > Original change's description: > > Reenable direct composition without video layers > > > > Reenable direct composition surface on devices without hardware overlays > > since it enables other power improvements like flip mode swap chain and > > disabling DWM redirection surface. > > > > To mitigate the original concerns about direct composition, this change > > makes DCLayerTree lazy initialize the video context and processor when > > a video layer is first used. On devices that don't support hardware > > overlays, the video context and processor will never be initialized. > > > > Bug: 894675 , 900702 > > Change-Id: I8c9d5b78718de2620ca177410d4916390e7cb219 > > Reviewed-on: https://chromium-review.googlesource.com/c/1318808 > > Commit-Queue: Sunny Sachanandani <sunnyps@chromium.org> > > Reviewed-by: Zhenyao Mo <zmo@chromium.org> > > Reviewed-by: Daniel Cheng <dcheng@chromium.org> > > Reviewed-by: Antoine Labour <piman@chromium.org> > > Cr-Commit-Position: refs/heads/master@{#606312} > > TBR=dcheng@chromium.org,zmo@chromium.org,sunnyps@chromium.org,piman@chromium.org > > # Not skipping CQ checks because original CL landed > 1 day ago. > > Bug: 894675 , 900702 > Change-Id: I094721159277c50d9061dfded252bbac1084977f > Reviewed-on: https://chromium-review.googlesource.com/c/1328965 > Reviewed-by: Patrik Höglund <phoglund@chromium.org> > Commit-Queue: Patrik Höglund <phoglund@chromium.org> > Cr-Commit-Position: refs/heads/master@{#606810} TBR=dcheng@chromium.org,phoglund@chromium.org,zmo@chromium.org,sunnyps@chromium.org,piman@chromium.org Change-Id: I47896832307fc7be15acfcefffe1953411e15cad No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: 894675 , 900702, 903931 Reviewed-on: https://chromium-review.googlesource.com/c/1330284 Reviewed-by: Sunny Sachanandani <sunnyps@chromium.org> Commit-Queue: Sunny Sachanandani <sunnyps@chromium.org> Cr-Commit-Position: refs/heads/master@{#606951} [modify] https://crrev.com/6e844c42a37cbe452e55f77acbe662892a44ad21/content/browser/gpu/gpu_internals_ui.cc [modify] https://crrev.com/6e844c42a37cbe452e55f77acbe662892a44ad21/content/renderer/render_thread_impl.cc [modify] https://crrev.com/6e844c42a37cbe452e55f77acbe662892a44ad21/gpu/config/gpu_driver_bug_list.json [modify] https://crrev.com/6e844c42a37cbe452e55f77acbe662892a44ad21/gpu/config/gpu_info.cc [modify] https://crrev.com/6e844c42a37cbe452e55f77acbe662892a44ad21/gpu/config/gpu_info.h [modify] https://crrev.com/6e844c42a37cbe452e55f77acbe662892a44ad21/gpu/config/gpu_util.cc [modify] https://crrev.com/6e844c42a37cbe452e55f77acbe662892a44ad21/gpu/ipc/common/gpu_info.mojom [modify] https://crrev.com/6e844c42a37cbe452e55f77acbe662892a44ad21/gpu/ipc/common/gpu_info_struct_traits.cc [modify] https://crrev.com/6e844c42a37cbe452e55f77acbe662892a44ad21/gpu/ipc/common/gpu_info_struct_traits.h [modify] https://crrev.com/6e844c42a37cbe452e55f77acbe662892a44ad21/gpu/ipc/common/struct_traits_unittest.cc [modify] https://crrev.com/6e844c42a37cbe452e55f77acbe662892a44ad21/gpu/ipc/service/direct_composition_surface_win.cc [modify] https://crrev.com/6e844c42a37cbe452e55f77acbe662892a44ad21/gpu/ipc/service/direct_composition_surface_win.h [modify] https://crrev.com/6e844c42a37cbe452e55f77acbe662892a44ad21/gpu/ipc/service/gpu_init.cc [modify] https://crrev.com/6e844c42a37cbe452e55f77acbe662892a44ad21/gpu/ipc/service/image_transport_surface_win.cc [modify] https://crrev.com/6e844c42a37cbe452e55f77acbe662892a44ad21/ui/gl/gl_switches.cc [modify] https://crrev.com/6e844c42a37cbe452e55f77acbe662892a44ad21/ui/gl/gl_switches.h
,
Nov 19
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/4eaa4d2f364739af777e527e7095eb2714a60009 commit 4eaa4d2f364739af777e527e7095eb2714a60009 Author: Sunny Sachanandani <sunnyps@chromium.org> Date: Mon Nov 19 22:41:45 2018 Cache video processor output view for video swap chain crrev.com/1318808 changed SwapChainPresenter to recreate video processor output view on every PresentToSwapChain in addition to lazy initializing the video device. A power regression was noticed on internal AVA bots around the same time. This is a speculative fix for the power regression by reverting to the old behavior of caching the output view. Bug: 894675 Change-Id: I4130129951d8b9d9efa9aaeee4ba78aa1ef3f778 Reviewed-on: https://chromium-review.googlesource.com/c/1341156 Commit-Queue: Sunny Sachanandani <sunnyps@chromium.org> Reviewed-by: Zhenyao Mo <zmo@chromium.org> Cr-Commit-Position: refs/heads/master@{#609475} [modify] https://crrev.com/4eaa4d2f364739af777e527e7095eb2714a60009/gpu/ipc/service/direct_composition_surface_win.cc
,
Nov 21
Hello! I noticed, that on computers with two GPU: GPU0 VENDOR = 0x8086, DEVICE= 0x5916 GPU1 VENDOR = 0x1002, DEVICE= 0x6900 The workaround with "id": 278 (https://cs.chromium.org/chromium/src/gpu/config/gpu_driver_bug_list.json?type=cs&q=disable_direct_composition&g=0&l=2970) doesn't apply at the time DirectComposition is initialized. In this moment all gpu marked as "no active" and for this entry only Intel gpu (because it's primary gpu) is checking (https://cs.chromium.org/chromium/src/gpu/config/gpu_control_list.cc?type=cs&q=puControlList::Conditions::Contains&g=0&l=348). I guess we should use category "multi_gpu_category": "any" to avoid bugs? Or will there be decision (enable / disable DirectComposition in runtime) for computers with two gpu?
,
Nov 21
That's a very good point. On Windows we actually don't switch GPUs dynamically through Chrome's life time, so we could identify which GPU is used and apply blacklisting or GPU driver bug workarounds on the correct GPU. After a quick scan of code, we do re-compute driver bug workarounds after initializing GL bindings and creating a context [1]. The bug is that we query direct composition and overlay support at context creation time [2], which is before we re-compute the driver bug workarounds and append the necessary commandline switch. [1]: https://cs.chromium.org/chromium/src/gpu/ipc/service/gpu_init.cc?rcl=1470e70fb7ae81232314db36db57545c0b7ff637&l=256 [2]: https://cs.chromium.org/chromium/src/gpu/ipc/service/gpu_init.cc?rcl=e930a44114a7f687fe434483f1754d07b99d3337&l=70
,
Nov 21
|
|||
►
Sign in to add a comment |
|||
Comment 1 by lo...@yandex-team.ru
, Oct 12