Browser rendering performance on linux

hey Jow Forums

i've been wondering about this for a while and thought i'd ask here... i have a xps 9370 and am on Ubuntu with i3 as my wm.

my question is about browser (Chromium-based ones in particular) performance. i always heard that performance should be better than on Windows for page rendering but on that laptop rendering on Linux is just particularly slow. fast scrolling shows white space before the content actually showing up. websites like YouTube and Twitch takes more than 3 seconds to render.

in Windows, the same pages load almost instantly. any similar experience? FYI: performance is as crappy in Firefox

i'm wondering if it's because of my 4k display with integrated GPU... the only thing I regret about that laptop...

bonus question: any performance improvement when using a wayland-based WM opposed to xorg-based one?

Attached: download (1).png (533x537, 48K)

Other urls found in this thread:

launchpad.net/~oibaf/ archive/ubuntu/graphics-drivers)
linuxuprising.com/2019/01/ubuntu-testing-chromium-snap-with-vaapi.html
pastebin.com/xrgs8F1q
bugs.chromium.org/p/chromium/issues/detail?id=137247
pastebin.com/XTB2Hy9A
twitter.com/SFWRedditVideos

FYI i'm using Updated Open Graphics Drivers - since 2011! (launchpad.net/~oibaf/ archive/ubuntu/graphics-drivers)

It depends on several variables. At first, see if VAAPI is enabled and functional.

halp

Chromium's rendering engine has notoriously awful scrolling issues under pretty much all platforms. Smooth scrolling on or not, if you're using a chromium-based browser, you're going to frequently run into jerky scrolling and glitchy rendering while scrolling. I imagine it's much worse on a 4K monitor with an integrated GPU. You can try out forcing chromium to override the software rendering list (in chrome://flags), but it's a potshot. The main reason I and many others have stuck with FF and gecko/servo browsers in general is because of the rendering engine. Fonts are fucking thicc and readable by default (something chromium stuff always struggles with), and scrolling (whether you're using smooth or not), is pretty much perfect under all platforms. FF also allows for text-only zoom, which is amazing on hidpi displays. Chromiumshit still hasn't come close to implementing this.

>VAAPI
how do i enable this? this is separate from chromium's hardware acceleration setting right?

seems rather new, never heard about it, can i toggle this via chrome://flags?

linuxuprising.com/2019/01/ubuntu-testing-chromium-snap-with-vaapi.html seems to say that i need to install a custom patched chromium version?

thx user

Firefox is good for me on windows and linux. Go to about:config and try
gfx.webrender.enabled;true
gfx.webrender.all;true

on windows there's no issues whatsoever, it runs smooth using the same settings and resolution, etc

and firefox runs like shit too :(

also same happens with youtube video playback... mpv is a little better but still sucks in full screen... why would they put such a shitty gpu with such a glorious display argh

i'll reinstall firefox; let me test

I've heard disabling smooth scroll has helped for some but I don't have any issues with it on.

firefox just made my fans start up for the first time in a month... wtf performance sucks even more

yeah disabled it right away it was sluggish as hell

What toaster are you running?

what does chrome://gpu say? it sounds like no hardware acceleration on linux

xps 9370
i7-8550U
16gb ram

thx for the help here's what it says:

full log here: pastebin.com/xrgs8F1q

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
Native GpuMemoryBuffers: Software only. Hardware acceleration disabled
Out-of-process Rasterization: Disabled
Hardware Protected Video Decode: Unavailable
Rasterization: Software only. Hardware acceleration disabled
Skia Renderer: Disabled
Surface Control: Disabled
Surface Synchronization: Enabled
Video Decode: Unavailable
Viz Service Display Compositor: Enabled
Viz Hit-test Surface Layer: Enabled
WebGL: Hardware accelerated
WebGL2: Hardware accelerated

this looks wrong:

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
Disable partial swaps on Mesa drivers (detected with GL_RENDERER): 339493
Applied Workarounds: disable_post_sub_buffers_for_onscreen_surfaces
Always rewrite vec/mat constructors to be consistent: 398694
Applied Workarounds: scalarize_vec_and_mat_constructor_args
On Intel GPUs MSAA performance is not acceptable for GPU rasterization: 527565
Applied Workarounds: msaa_is_slow
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 framebuffer on Linux Intel: 664740
Applied Workarounds: adjust_src_dst_region_for_blitframebuffer
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 Intel GPUs: 938286
Applied Workarounds: rely_on_implicit_sync_for_swap_buffers
Mesa hangs the system when allocating large textures: 927470
Applied Workarounds: max_3d_array_texture_size_1024, max_texture_size_limit_4096
Native GpuMemoryBuffers have been disabled, either via about:flags or command line.
Disabled Features: native_gpu_memory_buffers
Skia renderer is not used by default.
Disabled Features: skia_renderer

Issue 137247: Enable VAVDA by default on Linux for VA-API-assisted HW video decode
bugs.chromium.org/p/chromium/issues/detail?id=137247

if i can get this figured out damn i'd be happy; even duckduckgo takes fucking 5 seconds for the external fonts to render FFFFFUUUUUUUUUU

Make a file called chromium-flags.conf in ~/.config/ containing this (only works if you're using plain Chromium):

--ignore-gpu-blacklist
--enable-gpu-rasterization
--enable-native-gpu-memory-buffers
--enable-zero-copy

all i see are errors LOL

[26817:26817:0723/141259.894228:ERROR:gl_surface_presentation_helper.cc(260)] : GetVSyncParametersIfAvailable() failed for 32512 times!

I use Brave but I guess I could install Chromium to test this out

this think chromium-flags.conf is Arch specific and won't work on Ubuntu

Hmm, really? Then add it as argument in a console.

Funny because firefox works just fine on my nuc with an i5 and igpu, hp laptop with an i5 and dedicated gpu, xps 15 with an i7 and gtx 1050

starting with these args from CLI actually seems to do something! chrome://gpu now displays less issues

pastebin.com/XTB2Hy9A

WOW

here's the top part for FYI

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
Native GpuMemoryBuffers: Hardware accelerated
Out-of-process Rasterization: Disabled
Hardware Protected Video Decode: Hardware accelerated
Rasterization: Hardware accelerated
Skia Renderer: Disabled
Surface Control: Disabled
Surface Synchronization: Enabled
Video Decode: Hardware accelerated
Viz Service Display Compositor: Enabled
Viz Hit-test Surface Layer: Disabled
WebGL: Hardware accelerated
WebGL2: Hardware accelerated

wtf is Skia Renderer

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
Disable partial swaps on Mesa drivers (detected with GL_RENDERER): 339493
Applied Workarounds: disable_post_sub_buffers_for_onscreen_surfaces
Always rewrite vec/mat constructors to be consistent: 398694
Applied Workarounds: scalarize_vec_and_mat_constructor_args
On Intel GPUs MSAA performance is not acceptable for GPU rasterization: 527565
Applied Workarounds: msaa_is_slow
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 framebuffer on Linux Intel: 664740
Applied Workarounds: adjust_src_dst_region_for_blitframebuffer
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 Intel GPUs: 938286
Applied Workarounds: rely_on_implicit_sync_for_swap_buffers
Mesa hangs the system when allocating large textures: 927470
Applied Workarounds: max_3d_array_texture_size_1024, max_texture_size_limit_4096
Viz hit-test surface layer version is not enabled by default.
Disabled Features: viz_hit_test_surface_layer
Skia renderer is not used by default.
Disabled Features: skia_renderer

must be my fucking 4k display :( that resolution is hard for the integrated gpu to push smoothly damn it

I have my i5 nuc connected to my 4k tv. What are you trying to do in your browser?

most errors are cleared with the flags only remaining one is:

>[14482:14482:0726/203643.447932:ERROR:buffer_manager.cc(488)] : [.DisplayCompositor]GL ERROR :GL_INVALID_OPERATION : glBufferData:

Well I use ubo and noop domains that I need to work and stream with mpv. I do this on any device. But I was able to load youtube fine.

thanks again user this helped already so much

That error is not important. I think your main issue has something to do with i3/compositing. Try something else like kwin and see if shit's working fine. If not, you probably have some kind of driver issue.

i use compton for compositing i'll try to kill it and see it it helps
i will also try another wm just in case i3 is being retarded

>linux just works
Yeah, right.

for some reason killing compton seems to improve browser performance even when no opacity is applied :-/ guess I'll btfo compton from my config then

holy fucking shit
killing compton and using the flags from that user really improved my config! it's almost better than it is on windows now!

THANKS ALL SO MUCH

>compton
why didn't you mention it earlier, compton is buggy pile of trash

the more i learn about it the more i discover that it is indeed, a pile of trash. i guess i should've told it first hand hehe

Attached: 1560036870171.jpg (2000x2000, 235K)

based

I have the opposite experience completely. I use a chromium-based browser (vivaldi) for casual browsing, but if I actually need to be reading a lot of digital text, I always use firefox, whether I'm on win, lin, or mac. Maybe this is because all my shit is hidpi. Maybe I'm just too autistic about font rendering. Or maybe it's because I use a lot of different fonts for multilingual stuff, but gecko does not make my eyes bleed, and chromium's rendering definitely does.

All accelerated desktop crap is trash. Use plain fucking Xorg with no goddamn acceleration on GNU/Linux. Compton/Plasma accelerated/Wayland/other bullshit is fucking garbage.

wayland is better than xorg though

why so?

red hat uses it by default so it's good

It's not a monolithic piece of overgrown trash with features that 99% of the user base doesn't use.