Open Bug 1580465 Opened 6 years ago Updated 3 years ago

block moves versus repainting while scrolling firefox via vnc

Categories

(Core :: Graphics, defect, P3)

70 Branch
defect

Tracking

()

UNCONFIRMED

People

(Reporter: pzz, Unassigned)

Details

User Agent: Mozilla/5.0 (X11; Linux x86_64; rv:70.0) Gecko/20100101 Firefox/70.0

Steps to reproduce:

ssh with tunnel for vnc from home via centurylink DSL to an office server, launch vncserver at the office and vncviewer at home via the ssh tunnel, launch firefox nightly inside vnc, bring up a page with fullpage graphic. drag and scroll the nightly window.

Actual results:

when i drag the nightly window inside vnc, even with a full page graphic, vnc updates the unobscured portions of the window so quickly that vnc is clearly cleverly doing block moves rather than retransmitting&repainting, while at the same time the portions of the window that were hidden and become freshly exposed take longer so are clearly being transmitted&painted.

so sadly by comparison, when firefox scrolls, the entire scrolling region repaints&retransmits, over and over again as it scrolls, which is painfully slow via vnc even over modern DSL speeds, especially for graphics, and with smooth scrolling it's even worse. i use pgup/pgdn whenever practical (they also have numerous issues, spurious changes of keyboard focus, partial page overlays, et al), i keep smooth scrolling off, tho in daily vnc usage i just generally have to grin and bear it. it's yuck, it's sad, and it's unnecessary!

Expected results:

yes i'm aware the page might be composed such that the background scrolls with the page or not, and if not, in lieu of some layered display protocol, repainting is needed. fine, for regions with nonscrolling backrounds. but where there's no background or the background scrolls along with the region (most pages!), could firefox please scroll such that vnc will end up doing block moves? it makes a big difference.

this is actually regarding a regression, that is to say not so many years back firefox scrolling was fast inside vnc. maybe it was before nonscrolling backgrounds were implemented but that's just a guess.

Component: Untriaged → Layout
Product: Firefox → Core

If this is a regression, any chance you can use mozregression to see when it became slow for you?

Component: Layout → Graphics
Summary: block moves versus repainting while scrolling firefox → block moves versus repainting while scrolling firefox via vnc

firefox 3.6.26 (centos4) scrolls quickly via vnc, either using the up and down arrows on the keyboard or the scrollbar. Nightly 70.0a1 (2019-08-29)(64-bit)(xenial) repaints the whole window, very slow via vnc, especially for wide graphics, whether using the up and down arrows on the keyboard or the scrollbar. i have them running side by side in the same vnc session.

Hi. If you go to about:support, is webrender enabled? It should say under "Compositing". If so, could you try disabling webrender and seeing if that helps: go to about:config and set gfx.webrender.force-disabled=true

Flags: needinfo?(bugzillamozilla)

i presume as soon as i click it from 'false' to 'true' it should be changed, but it made no difference, scroll still slow for nightly, fast for 3.6.26, compositing still says 'basic':

Graphics
Features
Compositing Basic
Asynchronous Pan/Zoom wheel input enabled; scrollbar drag enabled; keyboard enabled; autoscroll enabled
WebGL 1 Driver WSI Info -
WebGL 1 Driver Renderer WebGL creation failed:

  • Refused to create native OpenGL context because of blacklist entry: FEATURE_FAILURE_OPENGL_1
  • Exhausted GL driver options.
    WebGL 1 Driver Version -
    WebGL 1 Driver Extensions -
    WebGL 1 Extensions -
    WebGL 2 Driver WSI Info -
    WebGL 2 Driver Renderer WebGL creation failed:
  • Refused to create WebGL2 context because of blacklist entry: FEATURE_FAILURE_OPENGL_1
    WebGL 2 Driver Version -
    WebGL 2 Driver Extensions -
    WebGL 2 Extensions -
    Window Protocol x11
    Off Main Thread Painting Enabled true
    Off Main Thread Painting Worker Count 1
    Target Frame Rate 60
    GPU #1
    Active Yes
    Description Mesa GLX Indirect
    Vendor ID 0x0000
    Device ID 0x0000
    Driver Vendor mesa/swrast
    Driver Version 4.0.4.0
    RAM 0MB
    Diagnostics
    AzureCanvasBackend skia
    AzureContentBackend skia
    AzureFallbackCanvasBackend none
    CairoUseXRender 0
    Device Reset
    Decision Log
    HW_COMPOSITING
    blocked by env: Acceleration blocked by platform
    OPENGL_COMPOSITING
    unavailable by default: Hardware compositing is disabled
    GPU_PROCESS
    unavailable by env: Hardware compositing is unavailable.
    WEBRENDER
    opt-in by default: WebRender is an opt-in feature
    WEBRENDER_QUALIFIED
    blacklisted by env: No qualified hardware
Flags: needinfo?(bugzillamozilla)

You need to restart the browser after setting it to false. Does that make a difference?

ok restarted, compositing still 'basic', WEBRENDER now 'disabled by user', still slow/retransmitting/repainting for every scroll step

Graphics
Features
Compositing Basic
Asynchronous Pan/Zoom wheel input enabled; scrollbar drag enabled; keyboard enabled; autoscroll enabled
WebGL 1 Driver WSI Info -
WebGL 1 Driver Renderer WebGL creation failed:

  • Refused to create native OpenGL context because of blacklist entry: FEATURE_FAILURE_OPENGL_1
  • Exhausted GL driver options.
    WebGL 1 Driver Version -
    WebGL 1 Driver Extensions -
    WebGL 1 Extensions -
    WebGL 2 Driver WSI Info -
    WebGL 2 Driver Renderer WebGL creation failed:
  • Refused to create WebGL2 context because of blacklist entry: FEATURE_FAILURE_OPENGL_1
    WebGL 2 Driver Version -
    WebGL 2 Driver Extensions -
    WebGL 2 Extensions -
    Window Protocol x11
    Off Main Thread Painting Enabled true
    Off Main Thread Painting Worker Count 1
    Target Frame Rate 60
    GPU #1
    Active Yes
    Description Mesa GLX Indirect
    Vendor ID 0x0000
    Device ID 0x0000
    Driver Vendor mesa/swrast
    Driver Version 4.0.4.0
    RAM 0MB
    Diagnostics
    AzureCanvasBackend skia
    AzureContentBackend skia
    AzureFallbackCanvasBackend none
    CairoUseXRender 0
    Device Reset
    Decision Log
    HW_COMPOSITING
    blocked by env: Acceleration blocked by platform
    OPENGL_COMPOSITING
    unavailable by default: Hardware compositing is disabled
    GPU_PROCESS
    unavailable by env: Hardware compositing is unavailable.
    WEBRENDER
    opt-in by default: WebRender is an opt-in feature
    disabled by user: User force-disabled WR
    WEBRENDER_QUALIFIED
    blacklisted by env: No qualified hardware

Thanks for testing with webrender disabled. Are you able to run mozregression to track down what change introduced this bug? Thanks.

https://mozilla.github.io/mozregression/

according to mozregression, firefox 6 scrolls poorly/slowly/repainting&retransmitting every scroll step, and firefox 5 crashes within one second after presenting its window

The priority flag is not set for this bug.
:jbonisteel, could you have a look please?

For more information, please visit auto_nag documentation.

Flags: needinfo?(jbonisteel)
Priority: -- → P3
Flags: needinfo?(jbonisteel)
Severity: normal normal → S3 S3
You need to log in before you can comment on or make changes to this bug.