HTML5 video causes GPU memory leak when GPU blacklist overriden
Reported by
khym.cha...@gmail.com,
Sep 10 2017
|
||||
Issue descriptionUserAgent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.79 Safari/537.36 Example URL: Steps to reproduce the problem: 1. On a Linux system with a blacklisted GPU, enable chrome://flags/#ignore-gpu-blacklist and restart the browser 2. Go to YouTube and play a long video using the HTML5 video player. What is the expected behavior? GPU process memory (as shown by Chrome's built-in task manager) stays steady over time. What went wrong? GPU process memory grows over time. Did this work before? N/A Is it a problem with Flash or HTML5? HTML5 Does this work in other browsers? Yes Chrome version: 61.0.3163.79 Channel: stable OS Version: Fedora 25 Flash Version: Shockwave Flash 26.0 r0 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: Force 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 Driver Bug Workarounds adjust_src_dst_region_for_blitframebuffer clear_uniforms_before_first_program_use count_all_in_varyings_packing decode_encode_srgb_for_generatemipmap disable_framebuffer_cmaa disable_post_sub_buffers_for_onscreen_surfaces disable_software_to_accelerated_canvas_upgrade dont_remove_invariant_for_fragment_input force_cube_map_positive_x_allocation force_int_or_srgb_cube_texture_complete init_texture_max_anisotropy regenerate_struct_names remove_invariant_and_centroid_for_essl3 scalarize_vec_and_mat_constructor_args Problems Detected Clear uniforms before first program use on all platforms: 124764, 349137 Applied Workarounds: clear_uniforms_before_first_program_use Mesa drivers in Linux handle varyings without static use incorrectly: 333885 Applied Workarounds: count_all_in_varyings_packing Linux AMD drivers incorrectly return initial value of 1 for TEXTURE_MAX_ANISOTROPY: 348237 Applied Workarounds: init_texture_max_anisotropy Always rewrite vec/mat constructors to be consistent: 398694 Applied Workarounds: scalarize_vec_and_mat_constructor_args Linux AMD drivers handle struct scopes incorrectly: 403957 Applied Workarounds: regenerate_struct_names Linux ATI drivers crash on binding incomplete cube map texture to FBO: 518889 Applied Workarounds: force_cube_map_positive_x_allocation Limited enabling of Chromium GL_INTEL_framebuffer_CMAA: 535198 Applied Workarounds: disable_framebuffer_cmaa Disable partial swaps on Mesa drivers (detected with GL_VERSION): 339493 Applied Workarounds: disable_post_sub_buffers_for_onscreen_surfaces adjust src/dst region if blitting pixels outside read framebuffer on Linux AMD: 664740 Applied Workarounds: adjust_src_dst_region_for_blitframebuffer AMD drivers in Linux require invariant qualifier to match between vertex and fragment shaders: 659326, 639760 Applied Workarounds: remove_invariant_and_centroid_for_essl3, dont_remove_invariant_for_fragment_input Disable KHR_blend_equation_advanced until cc shaders are updated: 661715 Decode and Encode before generateMipmap for srgb format textures on Linux AMD: 634519 Applied Workarounds: decode_encode_srgb_for_generatemipmap Software to Accelerated canvas update breaks Linux AMD: 710029 Applied Workarounds: disable_software_to_accelerated_canvas_upgrade Force integer or srgb cube map texture complete on Linux AMD: 712117 Applied Workarounds: force_int_or_srgb_cube_texture_complete Native GpuMemoryBuffers have been disabled, either via about:flags or command line. Disabled Features: native_gpu_memory_buffers Version Information Data exported 9/10/2017, 4:25:35 AM Chrome version Chrome/61.0.3163.79 Operating system Linux 4.12.9-200.fc25.x86_64 Software rendering list version 0 Driver bug list version 10.28 ANGLE commit id 0d2ecb4ea992 2D graphics backend Skia/61 0eefc0552cfb5ac077560b7c2630c5bd475ea585- Command Line /opt/google/chrome/google-chrome --enable-crash-reporter --password-store=kwallet --disk-cache-size=2147483647 --flag-switches-begin --allow-insecure-localhost --autoplay-policy=no-user-gesture-required --enable-browser-task-scheduler --delay-reload-stop-button-change --disable-device-discovery-notifications --blink-settings=disallowFetchForDocWrittenScriptsInMainFrame=false --disable-distance-field-text --enable-checker-imaging --disable-offer-upload-credit-cards --enable-clear-browsing-data-counters --enable-devtools-experiments --enable-display-list-2d-canvas --enable-es3-apis --enable-experimental-canvas-features --enable-google-branded-context-menu --enable-gpu-rasterization --history-entry-requires-user-gesture --disable-input-ime-api --enable-md-policy-page --disable-offer-store-unmasked-wallet-cards --enable-offline-auto-reload-visible-only --enable-offline-auto-reload --disable-password-generation --enable-permission-action-reporting --disable-push-api-background-mode --enable-quic --enable-scroll-prediction --use-simple-cache-backend=on --enable-single-click-autofill --enable-site-settings --enable-spelling-feedback-field-trial --enable-suggestions-with-substring-match --enable-tab-audio-muting --enable-tcp-fastopen --enable-use-zoom-for-dsf=true --enable-webfonts-intervention-v2=disabled --enable-webgl-draft-extensions --enable-webrtc-srtp-aes-gcm --enable-webrtc-stun-origin --enable-zero-copy --gpu-rasterization-msaa-sample-count=4 --ignore-gpu-blacklist --enable-lcd-text --num-raster-threads=4 --show-autofill-type-predictions --show-cert-link --show-saved-copy=primary --enable-slimming-paint-invalidation --enable-smooth-scrolling --top-chrome-md=material --touch-events=disabled --v8-cache-options=code --v8-cache-strategies-for-cache-storage=normal --wallet-service-use-sandbox=0 --enable-features=AsmJsToWebAssembly,BackgroundVideoTrackOptimization,ColorCorrectRendering,DisplayPersistenceToggleInPermissionPrompts,FeaturePolicy,FetchKeepaliveTimeoutSetting,FontCacheScaling,FramebustingNeedsSameOriginOrUserGesture,GenericSensor,HttpFormWarning,IdleTimeSpellChecking,NativeNotifications,NewAudioRenderingMixingStrategy,NewOmniboxAnswerTypes,NoStatePrefetch,OffMainThreadFetch,OmniboxDisplayTitleForCurrentUrl,OmniboxEntitySuggestions,OmniboxUIExperimentMaxAutocompleteMatches,OneGoogleBarOnLocalNtp,OriginTrials,PermissionsBlacklist,ResourceLoadScheduler,SafeSearchUrlReporting,ServiceWorkerNavigationPreload,SharedArrayBuffer,SpeculativeResourcePrefetching,TranslateLanguageByULP,UseGoogleLocalNtp,UseSuggestionsEvenIfFew,VibrateRequiresUserGesture,WebAssembly,WebAssemblyStreaming,WebPayments,ZeroSuggestRedirectToChrome,brotli-encoding,drop-sync-credential,fill-on-account-select,password-import-export,token-binding --disable-features=AutofillUpstreamRequestCvcIfMissing,GamepadExtensions,GuestViewCrossProcessFrames,LoadingWithMojo,MaterialDesignBookmarks,MaterialDesignExtensions,MemoryAblation,MemoryCoordinator,ModuleScripts,NetworkService,OverlayScrollbar,PassiveDocumentEventListeners,PassiveEventListenersDueToFling,PauseBackgroundTabs,ScrollAnchoring,WebRTC-H264WithOpenH264FFmpeg,WebUSB,browser-side-navigation,protect-sync-credential,top-document-isolation --flag-switches-end Driver Information Initialization time 122 In-process GPU false Passthrough Command Decoder false Supports overlays false Sandboxed false GPU0 VENDOR = 0x1002, DEVICE= 0x1313 Optimus false Optimus false AMD switchable false Driver vendor Mesa Driver version 17.0.5 Driver date Pixel shader version 4.50 Vertex shader version 4.50 Max. MSAA samples 8 Machine model name Machine model version GL_VENDOR X.Org GL_RENDERER Gallium 0.4 on AMD KAVERI (DRM 2.50.0 / 4.12.9-200.fc25.x86_64, LLVM 3.9.1) GL_VERSION 4.5 (Core Profile) Mesa 17.0.5 GL_EXTENSIONS GL_AMD_conservative_depth GL_AMD_draw_buffers_blend GL_AMD_performance_monitor GL_AMD_pinned_memory GL_AMD_seamless_cubemap_per_texture GL_AMD_shader_stencil_export GL_AMD_shader_trinary_minmax GL_AMD_vertex_shader_layer GL_AMD_vertex_shader_viewport_index GL_ANGLE_texture_compression_dxt3 GL_ANGLE_texture_compression_dxt5 GL_ARB_ES2_compatibility GL_ARB_ES3_1_compatibility GL_ARB_ES3_2_compatibility GL_ARB_ES3_compatibility GL_ARB_arrays_of_arrays GL_ARB_base_instance GL_ARB_blend_func_extended GL_ARB_buffer_storage GL_ARB_clear_buffer_object GL_ARB_clear_texture GL_ARB_clip_control GL_ARB_color_buffer_float GL_ARB_compressed_texture_pixel_storage GL_ARB_compute_shader GL_ARB_compute_variable_group_size GL_ARB_conditional_render_inverted GL_ARB_conservative_depth GL_ARB_copy_buffer GL_ARB_copy_image GL_ARB_cull_distance GL_ARB_debug_output GL_ARB_depth_buffer_float GL_ARB_depth_clamp GL_ARB_derivative_control GL_ARB_direct_state_access GL_ARB_draw_buffers GL_ARB_draw_buffers_blend GL_ARB_draw_elements_base_vertex GL_ARB_draw_indirect GL_ARB_draw_instanced GL_ARB_enhanced_layouts GL_ARB_explicit_attrib_location GL_ARB_explicit_uniform_location GL_ARB_fragment_coord_conventions GL_ARB_fragment_layer_viewport GL_ARB_fragment_shader GL_ARB_framebuffer_no_attachments GL_ARB_framebuffer_object GL_ARB_framebuffer_sRGB GL_ARB_get_program_binary GL_ARB_get_texture_sub_image GL_ARB_gpu_shader5 GL_ARB_gpu_shader_fp64 GL_ARB_half_float_pixel GL_ARB_half_float_vertex GL_ARB_instanced_arrays GL_ARB_internalformat_query GL_ARB_internalformat_query2 GL_ARB_invalidate_subdata GL_ARB_map_buffer_alignment GL_ARB_map_buffer_range GL_ARB_multi_bind GL_ARB_multi_draw_indirect GL_ARB_occlusion_query2 GL_ARB_pipeline_statistics_query GL_ARB_pixel_buffer_object GL_ARB_point_sprite GL_ARB_program_interface_query GL_ARB_provoking_vertex GL_ARB_query_buffer_object GL_ARB_robust_buffer_access_behavior GL_ARB_robustness GL_ARB_sample_shading GL_ARB_sampler_objects GL_ARB_seamless_cube_map GL_ARB_seamless_cubemap_per_texture GL_ARB_separate_shader_objects GL_ARB_shader_atomic_counter_ops GL_ARB_shader_atomic_counters GL_ARB_shader_bit_encoding GL_ARB_shader_image_load_store GL_ARB_shader_image_size GL_ARB_shader_objects GL_ARB_shader_precision GL_ARB_shader_stencil_export GL_ARB_shader_storage_buffer_object GL_ARB_shader_subroutine GL_ARB_shader_texture_image_samples GL_ARB_shader_texture_lod GL_ARB_shading_language_420pack GL_ARB_shading_language_packing GL_ARB_stencil_texturing GL_ARB_sync GL_ARB_tessellation_shader GL_ARB_texture_barrier GL_ARB_texture_buffer_object GL_ARB_texture_buffer_object_rgb32 GL_ARB_texture_buffer_range GL_ARB_texture_compression_bptc GL_ARB_texture_compression_rgtc GL_ARB_texture_cube_map_array GL_ARB_texture_float GL_ARB_texture_gather GL_ARB_texture_mirror_clamp_to_edge GL_ARB_texture_multisample GL_ARB_texture_non_power_of_two GL_ARB_texture_query_levels GL_ARB_texture_query_lod GL_ARB_texture_rectangle GL_ARB_texture_rg GL_ARB_texture_rgb10_a2ui GL_ARB_texture_stencil8 GL_ARB_texture_storage GL_ARB_texture_storage_multisample GL_ARB_texture_swizzle GL_ARB_texture_view GL_ARB_timer_query GL_ARB_transform_feedback2 GL_ARB_transform_feedback3 GL_ARB_transform_feedback_instanced GL_ARB_uniform_buffer_object GL_ARB_vertex_array_bgra GL_ARB_vertex_array_object GL_ARB_vertex_attrib_64bit GL_ARB_vertex_attrib_binding GL_ARB_vertex_shader GL_ARB_vertex_type_10f_11f_11f_rev GL_ARB_vertex_type_2_10_10_10_rev GL_ARB_viewport_array GL_ATI_blend_equation_separate GL_ATI_meminfo GL_ATI_texture_float GL_ATI_texture_mirror_once GL_EXT_abgr GL_EXT_blend_equation_separate GL_EXT_depth_bounds_test GL_EXT_draw_buffers2 GL_EXT_draw_instanced GL_EXT_framebuffer_blit GL_EXT_framebuffer_multisample GL_EXT_framebuffer_multisample_blit_scaled GL_EXT_framebuffer_sRGB GL_EXT_packed_depth_stencil GL_EXT_packed_float GL_EXT_pixel_buffer_object GL_EXT_polygon_offset_clamp GL_EXT_provoking_vertex GL_EXT_shader_integer_mix GL_EXT_texture_array GL_EXT_texture_compression_dxt1 GL_EXT_texture_compression_rgtc GL_EXT_texture_compression_s3tc GL_EXT_texture_filter_anisotropic GL_EXT_texture_integer GL_EXT_texture_mirror_clamp GL_EXT_texture_sRGB GL_EXT_texture_sRGB_decode GL_EXT_texture_shared_exponent GL_EXT_texture_snorm GL_EXT_texture_swizzle GL_EXT_timer_query GL_EXT_transform_feedback GL_EXT_vertex_array_bgra GL_IBM_multimode_draw_arrays GL_KHR_context_flush_control GL_KHR_debug GL_KHR_robust_buffer_access_behavior GL_KHR_robustness GL_MESA_pack_invert GL_MESA_shader_integer_functions GL_MESA_texture_signed_rgba GL_NVX_gpu_memory_info GL_NV_conditional_render GL_NV_depth_clamp GL_NV_packed_depth_stencil GL_NV_texture_barrier GL_NV_vdpau_interop GL_OES_EGL_image GL_S3_s3tc Disabled Extensions GL_KHR_blend_equation_advanced GL_KHR_blend_equation_advanced_coherent Window system binding vendor SGI Window system binding version 1.4 Window system binding extensions GLX_ARB_create_context GLX_ARB_create_context_profile GLX_ARB_create_context_robustness GLX_ARB_fbconfig_float GLX_ARB_framebuffer_sRGB GLX_ARB_multisample GLX_EXT_create_context_es_profile GLX_EXT_create_context_es2_profile GLX_EXT_fbconfig_packed_float GLX_EXT_framebuffer_sRGB GLX_EXT_import_context GLX_EXT_libglvnd GLX_EXT_texture_from_pixmap GLX_EXT_visual_info GLX_EXT_visual_rating GLX_MESA_copy_sub_buffer GLX_OML_swap_method GLX_SGI_make_current_read GLX_SGI_swap_control GLX_SGIS_multisample GLX_SGIX_fbconfig GLX_SGIX_pbuffer GLX_SGIX_visual_select_group GLX_INTEL_swap_event Window manager KWin XDG_CURRENT_DESKTOP KDE Compositing manager Yes Direct rendering Yes Reset notification strategy 0x8252 GPU process crash count 0 System visual ID 33 RGBA visual ID 112 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 Log Messages [9139:9139:0910/042532.672392:ERROR:sandbox_linux.cc(344)] : InitializeSandbox() called with multiple threads in process gpu-process. I know that overriding the blacklist can cause crashes and video problems, but I don't think it should cause a memory leak. My computer is using the built-in GPU of a AMD A8-7600 Radeon R7. Attached is a tarball containing the Xorg log for my computer, plus the output of dmidecode, glxinfo and xdpyinfo.
,
Sep 11 2017
,
Sep 11 2017
,
Sep 11 2017
It's definitely possible for the driver to be blacklisted because it's leaking memory. If you start w/o ignore blacklist chrome://gpu should list why it's blacklisting certain things with a bug URLs. See lines like "Decode and Encode before generateMipmap for srgb format textures on Linux AMD: 634519" in the above text; which refers to issue 634519 .
,
Sep 13 2017
as per c#4, I understand this is won't fix. If you choose to ignore blacklist GPU, this is expected behavior. |
||||
►
Sign in to add a comment |
||||
Comment 1 by khym.cha...@gmail.com
, Sep 10 201792.5 KB
92.5 KB View Download
100 KB
100 KB View Download
116 KB
116 KB View Download
17.5 KB
17.5 KB View Download