Bug 45029 - [Gtk] scrolling artifacts
Summary: [Gtk] scrolling artifacts
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: New Bugs (show other bugs)
Version: 528+ (Nightly build)
Hardware: PC Linux
: P2 Normal
Assignee: Nobody
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-09-01 02:26 PDT by zaheer
Modified: 2010-12-16 15:39 PST (History)
9 users (show)

See Also:


Attachments
scroll artifacts (359.57 KB, image/png)
2010-09-01 02:26 PDT, zaheer
no flags Details
Patch to call gdk_window_process_updates() when scrolling (1.12 KB, patch)
2010-12-16 05:45 PST, Carlos Garcia Campos
mrobinson: review+
commit-queue: commit-queue-
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description zaheer 2010-09-01 02:26:08 PDT
Created attachment 66183 [details]
scroll artifacts

scrolling causes artifacts. This is possibly because the expose is not triggered fast enough after moving the partial window in chromeclient::scroll.

A fix could be to force an update gdk_window_process_updates but thats likely a performance hit.

chrome+linux has a faster scroll speed something i guess we need to match on the gtk port.

snap attached
Comment 1 Alejandro G. Castro 2010-09-01 02:41:04 PDT
This is basically responsibility of the gtk scrolling code, since clien-side-windows patches situation is not that bad if you do not have a native window in the view. Basically if you have a plugin with window, the scroll fallback to the old behaviour, which is this. We would like to work on this and trying to fix it with a backing store, it is interesting wrt webkit2.
Comment 2 zaheer 2010-09-01 11:00:08 PDT
(In reply to comment #1)
> This is basically responsibility of the gtk scrolling code, since clien-side-windows patches situation is not that bad if you do not have a native window in the view. Basically if you have a plugin with window, the scroll fallback to the old behaviour, which is this. We would like to work on this and trying to fix it with a backing store, it is interesting wrt webkit2.
Do you mean a backing store on the server (xpixmap) since i think plugins use x windows directly. Also in the current situation, isnt it possible to postpone the window move to a later point (expose) and draw everything at once.
Comment 3 Carlos Garcia Campos 2010-12-16 05:45:46 PST
Created attachment 76760 [details]
Patch to call gdk_window_process_updates() when scrolling

Yes, calling gdk_window_process_updates() fixed the artifacts for me. Maybe there are other performance issues to fix, but we should definitely call gdk_window_process_updates() right after moving the window when scrolling, it's what all gtk widgets that implement scrollable interface do, see GtkLayout, GtkViewPort, GtkTextView, etc.
Comment 4 Martin Robinson 2010-12-16 09:26:32 PST
Comment on attachment 76760 [details]
Patch to call gdk_window_process_updates() when scrolling

Great catch.
Comment 5 WebKit Commit Bot 2010-12-16 09:28:03 PST
Comment on attachment 76760 [details]
Patch to call gdk_window_process_updates() when scrolling

Rejecting attachment 76760 [details] from commit-queue.

Failed to run "['./WebKitTools/Scripts/webkit-patch', '--status-host=queues.webkit.org', '--bot-id=cr-jail-3', 'apply-attachment', '--non-interactive', 76760]" exit_code: 2
Last 500 characters of output:
ailed to merge in the changes.
Patch failed at 0001 2010-12-16  Yury Semikhatsky  <yurys@chromium.org>

When you have resolved this problem run "git rebase --continue".
If you would prefer to skip this patch, instead run "git rebase --skip".
To restore the original branch and stop rebasing run "git rebase --abort".

rebase refs/remotes/origin/master: command returned error: 1

Died at WebKitTools/Scripts/update-webkit line 132.

Failed to run "['WebKitTools/Scripts/update-webkit']" exit_code: 2

Full output: http://queues.webkit.org/results/7076078
Comment 6 Martin Robinson 2010-12-16 09:50:42 PST
Committed r74196: <http://trac.webkit.org/changeset/74196>
Comment 7 WebKit Review Bot 2010-12-16 15:39:15 PST
http://trac.webkit.org/changeset/74196 might have broken Leopard Intel Debug (Tests)