I have firstly played with the Raspbian config for video to see if that's the cause but after trying the web app within a different browser (Chromium included) it works.
I have a web version of my video playback app that I can load via URL in the included Chromium application that comes with Raspbian and it plays videos windowed, full-screen, etc perfectly, looks great and no video tearing.
I now package that same web app up, no differences, into an Electron app built for Linux-arm in a DEB package, and when I install it and open app, the videos play still, functionality is there, but playback has horizontal video tearing on videos with lots of movement.
I'm curious if anyone knows how to build the Electron prebuilt with flags or other settings to mimic the Chromium application that is included on Raspbian? Is the included Chromium app using VLC as the video renderer somehow?
Thank you.
Edit 1:
I opened chrome://gpu
on both Chromium and the Electron app. The versions are slightly different, but wouldn't expect enough to be the cause. The driver bug workarounds and problems detected are slightly different and I don't know how to make the Electron app use the same "config" as the Chromium. Below is both gpu reports with differences in the Electron app highlighted.
I suspect problem lies in these workarounds that are only found in the Electron report. No idea how to compile the Electron app to no do these workarounds
>> decode_encode_srgb_for_generatemipmap
>> disable_post_sub_buffers_for_onscreen_surfaces
>> Disable partial swaps on Mesa drivers (detected with GL_VERSION): 339493
Applied Workarounds: disable_post_sub_buffers_for_onscreen_surfaces
>> Decode and encode before generateMipmap for srgb format textures on os except macosx: 634519
Applied Workarounds: decode_encode_srgb_for_generatemipmap
Electron GPU Report:
Graphics Feature Status
Canvas: Hardware accelerated
Flash: Hardware accelerated
Flash Stage3D: Hardware accelerated
Flash Stage3D Baseline profile: Hardware accelerated
Compositing: Hardware accelerated
Multiple Raster Threads: Enabled
Out-of-process Rasterization: Disabled
Hardware Protected Video Decode: Unavailable
Rasterization: Software only. Hardware acceleration disabled
Skia Renderer: Disabled
Video Decode: Unavailable
Viz Display Compositor: Enabled
Viz Hit-test Surface Layer: Disabled
WebGL: Hardware accelerated
WebGL2: Hardware accelerated
Driver Bug Workarounds
clear_uniforms_before_first_program_use
count_all_in_varyings_packing
>> decode_encode_srgb_for_generatemipmap
>> disable_post_sub_buffers_for_onscreen_surfaces
exit_on_context_lost
rely_on_implicit_sync_for_swap_buffers
scalarize_vec_and_mat_constructor_args
disabled_extension_GL_KHR_blend_equation_advanced
disabled_extension_GL_KHR_blend_equation_advanced_coherent
Problems Detected
Accelerated video decode is unavailable on Linux: 137247
Disabled Features: accelerated_video_decode
Protected video decoding with swap chain is for Windows and Intel only
Disabled Features: protected_video_decode
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
Always rewrite vec/mat constructors to be consistent: 398694
Applied Workarounds: scalarize_vec_and_mat_constructor_args
>> Disable partial swaps on Mesa drivers (detected with GL_VERSION): 339493
Applied Workarounds: disable_post_sub_buffers_for_onscreen_surfaces
>> Decode and encode before generateMipmap for srgb format textures on os except macosx: 634519
Applied Workarounds: decode_encode_srgb_for_generatemipmap
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)
Some drivers can't recover after OUT_OF_MEM and context lost: 893177
Applied Workarounds: exit_on_context_lost
Avoid waiting on a egl fence before swapping buffers and rely on implicit sync on Broadcom GPUs: 938286
Applied Workarounds: rely_on_implicit_sync_for_swap_buffers
Version Information
Data exported 2020-04-03T02:18:39.594Z
Chrome version Chrome/78.0.3904.130
Operating system Linux 4.19.108-v7l+
Chromium GPU Report
Graphics Feature Status
Canvas: Hardware accelerated
Flash: Hardware accelerated
Flash Stage3D: Hardware accelerated
Flash Stage3D Baseline profile: Hardware accelerated
Compositing: Hardware accelerated
Multiple Raster Threads: Enabled
Out-of-process Rasterization: Disabled
Hardware Protected Video Decode: Unavailable
Rasterization: Software only. Hardware acceleration disabled
Skia Renderer: Disabled
Video Decode: Unavailable
Viz Display Compositor: Enabled
Viz Hit-test Surface Layer: Disabled
WebGL: Hardware accelerated
WebGL2: Hardware accelerated
Driver Bug Workarounds
clear_uniforms_before_first_program_use
count_all_in_varyings_packing
exit_on_context_lost
rely_on_implicit_sync_for_swap_buffers
scalarize_vec_and_mat_constructor_args
disabled_extension_GL_KHR_blend_equation_advanced
disabled_extension_GL_KHR_blend_equation_advanced_coherent
Problems Detected
Accelerated video decode is unavailable on Linux: 137247
Disabled Features: accelerated_video_decode
Protected video decoding with swap chain is for Windows and Intel only
Disabled Features: protected_video_decode
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
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)
Some drivers can't recover after OUT_OF_MEM and context lost: 893177
Applied Workarounds: exit_on_context_lost
Avoid waiting on a egl fence before swapping buffers and rely on implicit sync on Broadcom GPUs: 938286
Applied Workarounds: rely_on_implicit_sync_for_swap_buffers
Version Information
Data exported 2020-04-03T02:19:47.378Z
Chrome version Chrome/78.0.3904.108
Operating system Linux 4.19.108-v7l+