New issue
Advanced search Search tips

Issue 763709 link

Starred by 1 user

Issue metadata

Status: WontFix
Owner: ----
Closed: Sep 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 2
Type: Bug



Sign in to add a comment

HTML5 video causes GPU memory leak when GPU blacklist overriden

Reported by khym.cha...@gmail.com, Sep 10 2017

Issue description

UserAgent: 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.
 
sys-info.tar.bz2
24.0 KB Download
Oops, I should I have attached each of those file individually; here they are.
Xorg.0.log
92.5 KB View Download
glxinfo.txt
100 KB View Download
xdpyinfo.txt
116 KB View Download
dmidecode.txt
17.5 KB View Download
Labels: Needs-Triage-M61
Cc: ericrk@chromium.org
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 .
Status: WontFix (was: Unconfirmed)
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