High CPU usage when playing a video
-
About a month ago I noticed abnormally high CPU usage when playing videos. The browser's task manager shows
GPU Process
using up to 300%. In total, the system task manager shows about a 100% CPU load. I've checked it using Firefox and Chrome, and the CPU load was negligible (<20% overall system).For YouTube there is a working workaround -
h264ify
extension. With it enabled, the CPU usage goes from about 100% to almost none. But for other websites the problem is currently unsolved. One example I'm currently struggling with is Odysee/LBRY.Use Hardware Acceleration When Available
is enabled, I tried turning it off and on - no change.vivaldi:flags
have default values. Tried togglingOverride software rendering list
,Vulkan
,Hardware-accelerated video decode
,D3D11 Video Decoder
- no change. Also I've tried complete uninstall with deleting all the data - the problem is present right after the clean reinstall.My system is Windows 10, RTX3060Ti, driver version 460.89 (studio driver). No application specific settings are set for Vivaldi in the NVidia Control Panel. I've tried creating the custom settings, copying them from Firefox - changed nothing.
Output of
vivaldi:gpu
:Graphics Feature Status Canvas: Hardware accelerated Compositing: Hardware accelerated Multiple Raster Threads: Enabled Out-of-process Rasterization: Hardware accelerated OpenGL: Enabled Rasterization: Hardware accelerated Skia Renderer: Enabled Video Decode: Hardware accelerated Vulkan: Disabled WebGL: Hardware accelerated WebGL2: Hardware accelerated Driver Bug Workarounds clear_uniforms_before_first_program_use decode_encode_srgb_for_generatemipmap disable_delayed_copy_nv12 exit_on_context_lost scalarize_vec_and_mat_constructor_args disabled_extension_GL_KHR_blend_equation_advanced disabled_extension_GL_KHR_blend_equation_advanced_coherent Problems Detected Some drivers are unable to reset the D3D device in the GPU process sandbox Applied Workarounds: exit_on_context_lost Clear uniforms before first program use on all platforms: 124764, 349137 Applied Workarounds: clear_uniforms_before_first_program_use Always rewrite vec/mat constructors to be consistent: 398694 Applied Workarounds: scalarize_vec_and_mat_constructor_args Disable KHR_blend_equation_advanced until cc shaders are updated: 661715 Applied Workarounds: disable(GL_KHR_blend_equation_advanced), disable(GL_KHR_blend_equation_advanced_coherent) Decode and Encode before generateMipmap for srgb format textures on Windows: 634519 Applied Workarounds: decode_encode_srgb_for_generatemipmap Delayed copy NV12 displays incorrect colors on NVIDIA drivers.: 728670 Applied Workarounds: disable_delayed_copy_nv12 ANGLE Features allow_compressed_formats (Frontend workarounds): Enabled: true Allow compressed formats disable_anisotropic_filtering (Frontend workarounds): Disabled Disable support for anisotropic filtering disable_program_binary (Frontend features) anglebug:5007: Disabled Disable support for GL_OES_get_program_binary disable_program_caching_for_transform_feedback (Frontend workarounds): Disabled On some GPUs, program binaries don't contain transform feedback varyings lose_context_on_out_of_memory (Frontend workarounds): Enabled: true Some users rely on a lost context notification if a GL_OUT_OF_MEMORY error occurs scalarize_vec_and_mat_constructor_args (Frontend workarounds) 398694: Enabled: true Always rewrite vec/mat constructors to be consistent sync_framebuffer_bindings_on_tex_image (Frontend workarounds): Disabled On some drivers TexImage sometimes seems to interact with the Framebuffer add_mock_texture_no_render_target (D3D workarounds) anglebug:2152: Disabled: isIntel && capsVersion < IntelDriverVersion(4815) On some drivers when rendering with no render target, two bugs lead to incorrect behavior allow_clear_for_robust_resource_init (D3D workarounds) 941620: Enabled: true Some drivers corrupt texture data when clearing for robust resource initialization. allow_translate_uniform_block_to_structured_buffer (D3D workarounds) anglebug:3682: Enabled: IsWin10OrGreater() There is a slow fxc compile performance issue with dynamic uniform indexing if translating a uniform block with a large array member to cbuffer. call_clear_twice (D3D workarounds) 655534: Disabled: isIntel && isSkylake && capsVersion < IntelDriverVersion(4771) Using clear() may not take effect depth_stencil_blit_extra_copy (D3D workarounds) anglebug:1452: Disabled: (part1 <= 13u && part2 < 6881) && isNvidia && driverVersionValid Bug in some drivers triggers a TDR when using CopySubresourceRegion from a staging texture to a depth/stencil disable_b5g6r5_support (D3D workarounds): Disabled: (isIntel && capsVersion < IntelDriverVersion(4539)) || isAMD Textures with the format DXGI_FORMAT_B5G6R5_UNORM have incorrect data emulate_isnan_float (D3D workarounds) 650547: Disabled: isIntel && isSkylake && capsVersion < IntelDriverVersion(4542) Using isnan() on highp float will get wrong answer emulate_tiny_stencil_textures (D3D workarounds): Disabled: isAMD && !(deviceCaps.featureLevel < D3D_FEATURE_LEVEL_10_1) 1x1 and 2x2 mips of depth/stencil textures aren't sampled correctly expand_integer_pow_expressions (D3D workarounds): Enabled: true The HLSL optimizer has a bug with optimizing 'pow' in certain integer-valued expressions flush_after_ending_transform_feedback (D3D workarounds): Enabled: isNvidia Some drivers sometimes write out-of-order results to StreamOut buffers when transform feedback is used to repeatedly write to the same buffer positions force_atomic_value_resolution (D3D workarounds) anglebug:3246: Enabled: isNvidia On some drivers the return value from RWByteAddressBuffer.InterlockedAdd does not resolve when used in the .yzw components of a RWByteAddressBuffer.Store operation get_dimensions_ignores_base_level (D3D workarounds): Enabled: isNvidia Some drivers do not take into account the base level of the texture in the results of the HLSL GetDimensions builtin mrt_perf_workaround (D3D workarounds): Enabled: true Some drivers have a bug where they ignore null render targets pre_add_texel_fetch_offsets (D3D workarounds): Disabled: isIntel HLSL's function texture.Load returns 0 when the parameter Location is negative, even if the sum of Offset and Location is in range rewrite_unary_minus_operator (D3D workarounds): Disabled: isIntel && (isBroadwell || isHaswell) && capsVersion < IntelDriverVersion(4624) Evaluating unary minus operator on integer may get wrong answer in vertex shaders select_view_in_geometry_shader (D3D workarounds): Disabled: !deviceCaps.supportsVpRtIndexWriteFromVertexShader The viewport or render target slice will be selected in the geometry shader stage for the ANGLE_multiview extension set_data_faster_than_image_upload (D3D workarounds): Enabled: !(isIvyBridge || isBroadwell || isHaswell) Set data faster than image upload skip_vs_constant_register_zero (D3D workarounds): Enabled: isNvidia In specific cases the driver doesn't handle constant register zero correctly use_instanced_point_sprite_emulation (D3D workarounds): Disabled: isFeatureLevel9_3 Some D3D11 renderers do not support geometry shaders for pointsprite emulation use_system_memory_for_constant_buffers (D3D workarounds) 593024: Disabled: isIntel Copying from staging storage to constant buffer storage does not work zero_max_lod (D3D workarounds): Disabled: isFeatureLevel9_3 Missing an option to disable mipmaps on a mipmapped texture Version Information Data exported 2021-03-17T16:25:39.783Z Chrome version Chrome/89.0.4389.91 Operating system Windows NT 10.0.19042 Software rendering list URL https://chromium.googlesource.com/chromium/src/+/49e803a96afcf4e13e3ba6d6d74356a04b9dfe1c/gpu/config/software_rendering_list.json Driver bug list URL https://chromium.googlesource.com/chromium/src/+/49e803a96afcf4e13e3ba6d6d74356a04b9dfe1c/gpu/config/gpu_driver_bug_list.json ANGLE commit id unknown hash 2D graphics backend Skia/89 109bfc9052ce1bde7acf07321d605601d7b7ec24 Command Line "C:\Users\vvv\AppData\Local\Vivaldi\Application\vivaldi.exe" --flag-switches-begin --flag-switches-end --save-page-as-mhtml Driver Information Initialization time 172 In-process GPU false Passthrough Command Decoder true Sandboxed true GPU0 VENDOR= 0x10de, DEVICE=0x2486, SUBSYS=0x863019da, REV=161, LUID={0,43148} *ACTIVE* GPU1 VENDOR= 0x1414, DEVICE=0x008c, LUID={0,46247} Optimus false AMD switchable false Desktop compositing Aero Glass Direct composition true Supports overlays true YUY2 overlay support SOFTWARE NV12 overlay support SCALING BGRA8 overlay support SOFTWARE RGB10A2 overlay support SOFTWARE Diagonal Monitor Size of \\.\DISPLAY1 7.2" Driver D3D12 feature level D3D 12.1 Driver Vulkan API version Vulkan API 1.2.0 Driver vendor ANGLE (NVIDIA) Driver version 27.21.14.6089 GPU CUDA compute capability major version 0 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 RTX 3060 Ti Direct3D11 vs_5_0 ps_5_0) GL_VERSION OpenGL ES 2.0.0 (ANGLE 2.1.0 git hash: unknown hash) GL_EXTENSIONS GL_ANGLE_base_vertex_base_instance GL_ANGLE_client_arrays GL_ANGLE_depth_texture GL_ANGLE_explicit_context GL_ANGLE_explicit_context_gles1 GL_ANGLE_framebuffer_blit GL_ANGLE_framebuffer_multisample GL_ANGLE_get_tex_level_parameter GL_ANGLE_instanced_arrays GL_ANGLE_lossy_etc_decode GL_ANGLE_memory_size GL_ANGLE_multi_draw GL_ANGLE_multiview_multisample GL_ANGLE_pack_reverse_row_order GL_ANGLE_program_cache_control GL_ANGLE_provoking_vertex 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_lose_context GL_CHROMIUM_sync_query GL_EXT_EGL_image_external_wrap_modes GL_EXT_blend_func_extended GL_EXT_blend_minmax GL_EXT_color_buffer_half_float GL_EXT_debug_label GL_EXT_debug_marker GL_EXT_discard_framebuffer GL_EXT_disjoint_timer_query GL_EXT_draw_buffers GL_EXT_draw_elements_base_vertex GL_EXT_float_blend GL_EXT_frag_depth GL_EXT_instanced_arrays GL_EXT_map_buffer_range GL_EXT_multisampled_render_to_texture 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_bptc GL_EXT_texture_compression_dxt1 GL_EXT_texture_compression_rgtc GL_EXT_texture_compression_s3tc_srgb GL_EXT_texture_filter_anisotropic GL_EXT_texture_format_BGRA8888 GL_EXT_texture_rg GL_EXT_texture_storage GL_EXT_unpack_subimage GL_KHR_debug GL_KHR_parallel_shader_compile 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_compressed_EAC_R11_signed_texture GL_OES_compressed_EAC_R11_unsigned_texture GL_OES_compressed_EAC_RG11_signed_texture GL_OES_compressed_EAC_RG11_unsigned_texture GL_OES_compressed_ETC2_RGB8_texture GL_OES_compressed_ETC2_RGBA8_texture GL_OES_compressed_ETC2_punchthroughA_RGBA8_texture GL_OES_compressed_ETC2_punchthroughA_sRGB8_alpha_texture GL_OES_compressed_ETC2_sRGB8_alpha8_texture GL_OES_compressed_ETC2_sRGB8_texture GL_OES_depth24 GL_OES_depth32 GL_OES_draw_elements_base_vertex GL_OES_element_index_uint GL_OES_fbo_render_mipmap 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_border_clamp 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_stencil8 GL_OES_vertex_array_object GL_WEBGL_video_texture Disabled Extensions GL_KHR_blend_equation_advanced GL_KHR_blend_equation_advanced_coherent Disabled WebGL Extensions Window system binding vendor Google Inc. (adapter LUID: 000000000000a88c) Window system binding version 1.5 (ANGLE 2.1.0 git hash: unknown hash) 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_ANGLE_windows_ui_composition EGL_NV_post_sub_buffer EGL_KHR_create_context 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 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_display_semaphore_share_group EGL_ANGLE_create_context_client_arrays EGL_ANGLE_program_cache_control EGL_ANGLE_robust_resource_initialization EGL_ANGLE_create_context_extensions_enabled EGL_ANDROID_blob_cache EGL_ANDROID_recordable EGL_ANGLE_image_d3d11_texture EGL_ANGLE_create_context_backwards_compatible EGL_KHR_create_context_no_error EGL_KHR_reusable_sync Direct rendering version unknown Reset notification strategy 0x8252 GPU process crash count 0 gfx::BufferFormats supported for allocation and texturing R_8: not supported, R_16: not supported, RG_88: not supported, BGR_565: not supported, RGBA_4444: not supported, RGBX_8888: not supported, RGBA_8888: not supported, BGRX_8888: not supported, BGRA_1010102: not supported, RGBA_1010102: not supported, BGRA_8888: not supported, RGBA_F16: not supported, YVU_420: not supported, YUV_420_BIPLANAR: not supported, P010: not supported 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 BGRA_1010102 Software only RGBA_1010102 Software only BGRA_8888 Software only RGBA_F16 Software only YVU_420 Software only YUV_420_BIPLANAR Software only P010 Software only Display(s) Information Info Display[2528732444] bounds=[0,0 1920x1080], workarea=[0,0 1920x1040], scale=1, rotation=0, panel_rotation=0 external. Color space (sRGB/no-alpha) {primaries:BT709, transfer:IEC61966_2_1, matrix:RGB, range:FULL} Buffer format (sRGB/no-alpha) BGRX_8888 Color space (sRGB/alpha) {primaries:BT709, transfer:IEC61966_2_1, matrix:RGB, range:FULL} Buffer format (sRGB/alpha) BGRA_8888 Color space (WCG/no-alpha) {primaries:BT709, transfer:IEC61966_2_1, matrix:RGB, range:FULL} Buffer format (WCG/no-alpha) BGRX_8888 Color space (WCG/alpha) {primaries:BT709, transfer:IEC61966_2_1, matrix:RGB, range:FULL} Buffer format (WCG/alpha) BGRA_8888 Color space (HDR/no-alpha) {primaries:BT709, transfer:IEC61966_2_1, matrix:RGB, range:FULL} Buffer format (HDR/no-alpha) BGRX_8888 Color space (HDR/alpha) {primaries:BT709, transfer:IEC61966_2_1, matrix:RGB, range:FULL} Buffer format (HDR/alpha) BGRA_8888 SDR white level in nits 80 Bits per color component 8 Bits per pixel 24 Refresh Rate in Hz 60 Video Acceleration Information Decode h264 baseline 64x64 to 4096x4096 pixels Decode h264 main 64x64 to 4096x4096 pixels Decode h264 high 64x64 to 4096x4096 pixels Decode vp9 profile0 64x64 to 4096x2304 pixels Decode vp9 profile0 64x64 to 2304x4096 pixels Decode vp9 profile2 64x64 to 4096x2304 pixels Decode vp9 profile2 64x64 to 2304x4096 pixels Decode av1 profile main 64x64 to 4096x2304 pixels Decode av1 profile main 64x64 to 2304x4096 pixels Encode h264 baseline 0x0 to 1920x1088 pixels, and/or 30.000 fps Encode h264 main 0x0 to 1920x1088 pixels, and/or 30.000 fps Encode h264 high 0x0 to 1920x1088 pixels, and/or 30.000 fps Vulkan Information Device Performance Information Total Physical Memory (Gb) 7 Total Disk Space (Gb) 837 Hardware Concurrency 4 System Commit Limit (Gb) 18 D3D11 Feature Level 12_1 Has Discrete GPU yes Software Rendering No 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 1080 dwRefreshRate 60 dwWHQLLevel 0 dwWidth 1920 iAdapter 0 lDriverSize 1049800 lMiniVddSize 0 szAGPStatusEnglish Enabled szAGPStatusLocalized Enabled szChipType GeForce RTX 3060 Ti szD3DStatusEnglish Enabled szD3DStatusLocalized Enabled szDACType Integrated RAMDAC szDDIVersionEnglish 12 szDDIVersionLocalized 12 szDDStatusEnglish Enabled szDDStatusLocalized Enabled szDXVAHDEnglish Supported szDXVAModes szDescription NVIDIA GeForce RTX 3060 Ti szDeviceId 0x2486 szDeviceIdentifier {D7B71E3E-67C6-11CF-A36D-3EA61BC2D635} szDeviceName \\.\DISPLAY1 szDisplayMemoryEnglish 4095 MB szDisplayMemoryLocalized 4095 MB szDisplayModeEnglish 1920 x 1080 (32 bit) (60Hz) szDisplayModeLocalized 1920 x 1080 (32 bit) (60Hz) szDriverAssemblyVersion 27.21.14.6089 szDriverAttributes Final Retail szDriverDateEnglish 11.12.2020 2:00:00 szDriverDateLocalized 12/11/2020 02:00:00 szDriverLanguageEnglish English szDriverLanguageLocalized English szDriverModelEnglish WDDM 2.7 szDriverModelLocalized WDDM 2.7 szDriverName C:\WINDOWS\System32\DriverStore\FileRepository\nv_dispsi.inf_amd64_db8f2c8fbddb2235\nvldumdx.dll,C:\WINDOWS\System32\DriverStore\FileRepository\nv_dispsi.inf_amd64_db8f2c8fbddb2235\nvldumdx.dll,C:\WINDOWS\System32\DriverStore\FileRepository\nv_dispsi.inf_amd64_db8f2c8fbddb2235\nvldumdx.dll,C:\WINDOWS\System32\DriverStore\FileRepository\nv_dispsi.inf_amd64_db8f2c8fbddb2235\nvldumdx.dll szDriverNodeStrongName oem79.inf:0f066de31a18608d:Section087:27.21.14.6089:pci\ven_10de&dev_2486 szDriverSignDate Unknown szDriverVersion 27.21.0014.6089 szKeyDeviceID Enum\PCI\VEN_10DE&DEV_2486&SUBSYS_863019DA&REV_A1 szKeyDeviceKey \Registry\Machine\System\CurrentControlSet\Control\Video\{37CF49EB-5C17-11EB-8E0B-A056CC8C1647}\0000 szManufacturer NVIDIA szMiniVdd unknown szMiniVddDateEnglish Unknown szMiniVddDateLocalized unknown szMonitorMaxRes Unknown szMonitorName Generic PnP Monitor szNotesEnglish No problems found. szNotesLocalized No problems found. szOverlayEnglish Supported szRankOfInstalledDriver 00CF2001 szRegHelpText Unknown szRevision Unknown szRevisionId 0x00A1 szSubSysId 0x863019DA 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 [12528:5908:0317/173305.847:INFO:wmf_media_pipeline.cc(348)] : PROPMEDIA(GPU) : Initialize mime_type=video/mp4 GpuProcessHost: The info collection GPU process exited normally. Everything is okay. [12528:5908:0317/180225.518:INFO:wmf_media_pipeline.cc(348)] : PROPMEDIA(GPU) : Initialize mime_type=video/mp4 GpuProcessHost: The info collection GPU process exited normally. Everything is okay.
It looks pretty much the same as the
chrome:gpu
of my Chrome (that doesn't have this problem). Only difference I've noticed is thatDecode vp9/av1 profile
lines have transposed duplicates in Vivaldi.Does anyone else have similar issues? What else can I do try and fix it, or at least find a reproducible cause for it?
-
Hi,
Welcome to Vivaldi's Forums!Did you kept the Profile?
If so,
Try on a New's Profile:
- " Right side" |
Rename it as Tests or something related, and use it as a Clean Profile, to test without custom configurations that can alter the original operation.
Since the result, check:
- Active Flags / Experiments
- Ad Blocker
- Site Data
- Clean Cache
- Extensions - Tip
Or fill in a Bug Report and please, add the VB# to the topic for follow up.
--
Also,
Some useful links:Forums
Community Official Tutorials Official Help Forum Categories Modding Vivaldi Vivaldi Features Vivaldi Help Forum Markdown Panels | :left-pointing_magnifying_glass: Engines Vivaldi Tutorials Issues Feature Requests ¿? Menus | FAQ Vivaldi How To Bug Reports
--
"Off Topic Tip"
Follow the Signature's Backup | Reset link.
Take the opportunity to start a Backup plan and even create a Template Profile.
Windows 7 (x64)
Vivaldi Backup | Reset + Extra Steps - " Right side" |
-
Hi,
Thanks for looking into this, and for the links. Especially the backup guide. It's a lot of information for me to digest, considering I know nothing about how browsers are built or the Vivaldi community/processes.
Regarding the clean profile. I've tested this on a clean reinstall. I mean I did these steps:
- Set up sync (I wasn't using it before).
- Sync everything.
- Uninstall Vivaldi, checking the "delete all data" box.
- Make sure there's nothing called "Vivaldi*" in the
AppData
and subfolders. - Download and install vivaldi. At this point all the settings were reset to defaults, nothing left of my profile / browsing data / extensions / etc.
- Open a video, check CPU usage.
Only after that I resynced my data back and tuned the settings to my liking.
The
vivaldi:flags
were/are on their defaults all the time, except when I tried toggling a few of them, as mentioned in the topic.vivaldi:experiments
have/had everything unchecked.Adblocker was on default "No Blocking" setting after the reinstall. Tried toggling it right now - no effect.
Site Data, Cache - all were erased during the reinstall, and I've also tried cleaning it previously.
No extensions were installed after the reinstall, also tried disabling all of them previously. As I've mentioned before, one extension can be a workaround for this problem on YouTube.
I think the information I currently have on this issue is a bit insufficient to file a helpful bug report. It wouldn't be of much use if no one but me is able to reproduce it. So I would like to pinpoint the problem as best as I can before reporting. Currently it looks like the hardware accelerated decoding fails for some video formats that work fine in the other browsers. What I would like to narrow down is: which formats and at what conditions. Preferably also what is it about my system that makes the hardware decoding not to be used in those cases. So what I'm gonna do now is to perform some clean tests with "yes" or "no" outcomes. Because "is CPU usage too high" depends on what is considered too high. It would be helpful if somebody else checked if what I'm getting is reproducible on their systems. Also, considering I know nothing about browsers, I may need some hand holding on the way. For example, I've no idea how to tell in what format a video is on a page.
For cleanliness I created a new Windows user, installed Vivaldi and Chrome, kept everything else untouched, all settings on defaults. A good pass/fail check is to see if GPU video decoder is being used at all. It's usage graph is available in the Windows Task Manager:
If a video is being played with hardware acceleration I get 3-30% of the GPU decoder being used, and no excess CPU usage. If a video is played without the acceleration I get precisely 0% GPU decoder usage, and excessive CPU use. So the situation I'm considering a fail - is when Chrome uses the HW decoder, but Vivaldi doesn't.YouTube
I've noticed that I'm currently unable to reproduce the issue with Youtube. I will get back if it returns. For now, I'm going to remove the "workaround" I was using for a while - "h264ify" extension.
Odysee
Exact video link: https://odysee.com/@grimreapers:e/questioned-can-we-perform-blue-angels:7
(A random neutral video I picked for testing. Not trying to get them views or something, just need to be specific with my tests.)
Result: Fail. Chrome uses HW acceleration, Vivaldi doesn't.Other sites
I practically don't use other video streaming services, so haven't a chance to notice the issue elsewhere. I would add a case here later if I find one.
Another thing I could test is changing my GPU / driver. But it's currently a bit problematic, so maybe later. I've also tried building Vivaldi from source, but after a couple hours of fighting pythons, decided that it's not my thing. There's no way I would be able to find the HW decoder picking logic in there anyway.
Sorry about getting the info in chunks, but I have limited testing abilities, and want to gather all the necessary info before reporting a bug. Not sure if I would be able to edit it afterwards. And don't want to spam the tracker. I'm posting what I've got here in hope somebody may have had similar issues, and maybe there is a workaround. Also any other testing tips are appreciated.
-
I've found a tip here about
vivaldi://media-internals
. Checked it againstchrome://media-internals
of my Chrome. And there are some differences. Chrome haskIsPlatformVideoDecoder = true
andkVideoDecoderName = "MojoVideoDecoder"
, Vivaldi -kIsPlatformVideoDecoder = false
andkVideoDecoderName = "PassThroughVideoDecoder"
.Full output from Vivaldi: https://pastebin.com/k6TibEw0
Full output from Chrome: https://pastebin.com/JuZW9R19Same video in both cases.
It doesn't tell me much though.
-
In steps:
Go and Bookmark:
Chrome://Flags
Search GPU | Decode
Test 🟢 /them.
Check Media-Internals in between.
-
Search results and their defaults:
#ignore-gpu-blocklist - disabled #disable-accelerated-2d-canvas - enabled #enable-gpu-rasterization - default #enable-zero-copy - default #use-angle - default #enable-gpu-service-logging - disabled #disable-accelerated-video-decode - enabled #d3d11-video-decoder - default #h264-decoder-is-buffer-complete-frame - default
Tried switching every setting to every possible value, no matter how unrelated. In all cases no HW decoding,
kIsPlatformVideoDecoder: false
,kVideoDecoderName: "PassThroughVideoDecoder"
. The settings I've tried are:#disable-accelerated-video-decode - disabled #ignore-gpu-blocklist - enabled #disable-accelerated-2d-canvas - disabled #enable-gpu-rasterization - enabled #enable-gpu-rasterization - disabled #enable-zero-copy - enabled #enable-zero-copy - disabled #use-angle - OpenGL #use-angle - D3D11 #use-angle - D3D9 #use-angle - D3D11on12 #enable-gpu-service-logging - enabled #d3d11-video-decoder - enabled #d3d11-video-decoder - disabled #h264-decoder-is-buffer-complete-frame - enabled #h264-decoder-is-buffer-complete-frame - disabled
-
@vvvivaldi said in High CPU usage when playing a video:
#ignore-gpu-blocklist - disabled
Try enabling that one and Toggle ON/OFF the HWA on V settings.
Or already did it?
-
@Zalex108 Already tried it. Tried all 16 settings states I mentioned in the second code block, as well as the defaults in the first block.
I will do more tests and file a bug report later, if I will be able to describe it in a reproducible way. Currently the issue boils down to the fact, that Vivaldi doesn't enable HW decoding for some video codecs, while Chrome and Firefox do. Simply opening the videos locally is enough to check. Example of suck video format is:
Format : MPEG-4 Format profile : Base Media Codec ID : isom (isom/iso2/avc1/mp41) File size : 266 MiB Duration : 12 min 29 s Overall bit rate : 2 982 kb/s Writing application : Lavf57.83.100 Video ID : 1 Format : AVC Format/Info : Advanced Video Codec Format profile : [email protected] Format settings : CABAC / 3 Ref Frames Format settings, CABAC : Yes Format settings, ReFrames : 3 frames Format settings, GOP : N=1 Codec ID : avc1 Codec ID/Info : Advanced Video Coding Duration : 12 min 29 s Bit rate : 2 843 kb/s Width : 1 920 pixels Height : 1 080 pixels Display aspect ratio : 16:9 Frame rate mode : Constant Frame rate : 60.000 FPS Color space : YUV Chroma subsampling : 4:2:0 Bit depth : 8 bits Scan type : Progressive Bits/(Pixel*Frame) : 0.023 Stream size : 254 MiB (95%) Color range : Limited Color primaries : BT.709 Transfer characteristics : BT.709 Matrix coefficients : BT.709 Codec configuration box : avcC
What I don't know is whether it's only me, or anyone else have similar issues too. It may not be very obvious on more powerful CPUs. But still, even with more CPU power it is undesirable waste of recourses. And there is now a simple test - the video I linked to in my second post should use the HW decoder if other browsers use it in the same system.
-
Try checking on the Snapshot, despite currently, if I'm not wrong, it's the same as Stable.
Do a StandAlone installation and test there also.
Any change a month ago +/- that would be triggered?
-
@vvvivaldi
Hi, Chrome and other are using own codecs and they have to pay for it, Vivaldi does not.
May you can install the codec to Windows, Vivaldi will use it.
Does your video player support HW acceleration in your system?Cheers, mib
-
Just tested your linked video and it pushes the CPU here as well on HD3000.
- HWA | On
- Override GPU Flag | On
Pending to check on the nVidia.
Does it happen on your system?
-
@Zalex108 Checked few older snapshots up to
1.16.1226.3
fromJul 3, 2018, 4:42 PM
- issue is present. So apparently it's not a regression. Just to be clear, when I said "About a month ago I noticed..." I only meant that I've noticed it recently. It is possible that the issue had been unnoticed because I didn't watch videos while doing something CPU heavy, or it is related to some changes on my system. -
@Zalex108
Yes, Intel HD 4000 bit I can test on my workstation with Win/Lin Nvidia.
Moment!Cheers
-
@mib2berlin Tried playing same video in VLC and Media Player Classic - both use HW decoder. I have a bunch of codecs in my system, never had any issues playing any formats locally.
-
VLC already has it's own Codecs folder, doesn't need any Codec Pack installed.
WMV is another thing... xD
-
@mib2berlin said in High CPU usage when playing a video:
@Zalex108
Yes, Intel HD 4000 bit I can test on my workstation with Win/Lin Nvidia.
Moment!Cheers
No hurry!
Thanks
-
@Zalex108 Well, those are the players I've got here. Checking everything else in the "Open With..." menu: Windows thingy called "Movies & TV" - uses HW; Windows thingy called "Photos" - uses HW; Windows Media Player - want's me to setup some stuff I don't want, so skipping it. And as I've said, Firefox and Chrome use HW too. The codec pack I've got installed is called "K-Lite Codec Pack 14.5.0 Full". I'm not really familiar what and why, but I'm using it since XP times, and haven't had any issues with it.
-
@vvvivaldi @Zalex108
Same on Windows with Vivaldi stable on Nvidia.
I will check on codecs tomorrow if we find a workaround.Cheers, mib
-
Same means High CPU?
-
Using nVidia still uses High CPU.