Opened 4 years ago

Closed 4 years ago

Last modified 4 years ago

#16202 closed bug (fixed)

Web+: Slow scrolling/artifacts with paste.ubuntu.com

Reported by: bitigchi Owned by: KapiX
Priority: normal Milestone: R1/beta3
Component: Applications/WebPositive Version: R1/Development
Keywords: Cc:
Blocked By: Blocking:
Platform: All

Description

Go to this page: https://paste.ubuntu.com/p/mf7sRysck9/

Scrolling is very slow, and leaves artifacts on the screen.

Change History (7)

comment:1 by X512, 4 years ago

Most of picture dump consist of

DRAW_PIXELS
	sourceRect: (0, 0, 3, 3)
	destinationRect: (0, 8, 3, 11)
	width: 4
	height: 4
	bytesPerRow: 16
	colorSpace: 8200
	flags: 0
	data: <64 bytes>

Picture file is 180.26 MiB and PictureDump result is 295.26 MiB.

This is probably caused by inefficient rendering of this tiled background: https://paste.ubuntu.com/static/bg_dotted.png.

comment:2 by waddlesplash, 4 years ago

IIRC, KapiX was working on a more efficient way to draw these repeating backgrounds, but I don't know how far he got.

comment:3 by KapiX, 4 years ago

Far enough to get the feature mentioned in beta2 release notes ;)

Apparently it only works for simple cases, because PulkoMandy has reported to me:

So I tried to use the tiled bitmap drawing in WebKit, but it did not work I have a problem with the phase apparently.

I tested with whatif.xkcd.com. It's drawing a bitmap at (left=200, top=502, right=1130, bottom=10035) and with a phase of (-81, 362). The bitmap is of 280*140 pixels (it's the notepad pattern in the background).

But it only works if I'm not using the phase, otherwise it does not draw anything. Is it because the x is negative? Because the y is larger than the bitmap size?

I guess the phase is relative to B_ORIGIN but I'm not sure (as is often the case with webkit), it could be relative to the top-left of the destination rectangle as well.

While I'm at it, ideally the WebKit implementation would need two extra parameters:

  • A "tile rect", which I guess is used to resize the source bitmap,
  • A "spacing" BSize, which I guess is used to have empty space between the tiles.

This would allow to implement the css background-repeat completely: https://www.w3schools.com/CSSref/pr_background-repeat.asp

I didn't find time to investigate yet.

comment:4 by KapiX, 4 years ago

Owner: changed from pulkomandy to KapiX
Status: newin-progress

comment:6 by KapiX, 4 years ago

Resolution: fixed
Status: in-progressclosed

comment:7 by pulkomandy, 4 years ago

Milestone: UnscheduledR1/beta3

Move closed tickets into beta3 milestone

Note: See TracTickets for help on using tickets.