-
Notifications
You must be signed in to change notification settings - Fork 710
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
perf: de-prioritize rendering non-visible tiles #10183
base: master
Are you sure you want to change the base?
perf: de-prioritize rendering non-visible tiles #10183
Conversation
The TileCombined's dimension, i.e. its _width and _height, is not fixed in the streaming TileCombined ctor (line ~404). |
I need clarification regarding the IDLE criteria, which shall allow sending the invisible tiles. |
50a1781
to
2841348
Compare
Force push resolved merge conflict with latest master tip as detected with the bots. I must have pushed it this morning in-between. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks, some useful cleanups here perhaps - though the algorithm used doesn't seem to match what was asked for. Let me paste that again:
a) only render & send those that are inside a visible area and
b) re-spin the main-loop and
c) only render non-visible tiles when there is nothing else to do =)
Was there a problem with detecting nothing else to do in c) - I would expect that is reasonably easy to detect - when we found nothing to read from our remote socket, and had a non-zero timeout to poll for.
"an attempt to reduce bandwidth to client" - this is primarily a way of reducing latency, by not spending time rendering not-yet-seen tiles - and prioritizing visible tiles over non-visible ones. Nothing to do with bandwidth in particular.
It would be good to cleanup the ordering functionality at the same time though eg. // FIXME: it's not that clear what good this does for us ... Around thumbnailing slides - while ensuring that whatever algorithm we use doesn't create starvation problems. |
2841348
to
3a3acc9
Compare
Looking at it, it only pushes leading preview-tiles to the end of the queue Our IDLE/invisible mechanism act above the produced 'popWholeTileQueue'
Since out IDLE/invisible mechanism includes the preview-tile order, see above, |
Offered the optional Tile/TileCombined intersection test patch via |
COOL 24.04 Cypress (desktop) — FAILURE: |
3a3acc9
to
9ee458b
Compare
rebased to master a330f9e (no changes) |
re CodeQL see #9916 (comment) |
9ee458b
to
5ee9495
Compare
173693b
to
885977b
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should prolly have a call here.
885977b
to
4f7bcd5
Compare
…ness This enhancement of [#10183](#10183) require the [LO TaskPriority patch](https://gerrit.libreoffice.org/c/core/+/176701). Signed-off-by: Sven Göthel <sven.gothel@collabora.com> Change-Id: I4ee18667cfcab62a4988ca9b0dd11d0fa8d46d19
4f7bcd5
to
3f94473
Compare
…ness This enhancement of [#10183](#10183) require the [LO TaskPriority patch](https://gerrit.libreoffice.org/c/core/+/176701). Signed-off-by: Sven Göthel <sven.gothel@collabora.com> Change-Id: I4ee18667cfcab62a4988ca9b0dd11d0fa8d46d19
3f94473
to
5359f8e
Compare
…ness This enhancement of [#10183](#10183) require the [LO TaskPriority patch](https://gerrit.libreoffice.org/c/core/+/176701). Signed-off-by: Sven Göthel <sven.gothel@collabora.com> Change-Id: I4ee18667cfcab62a4988ca9b0dd11d0fa8d46d19
5359f8e
to
55d678c
Compare
…ness This enhancement of [#10183](#10183) require the [LO TaskPriority patch](https://gerrit.libreoffice.org/c/core/+/176701). Signed-off-by: Sven Göthel <sven.gothel@collabora.com> Change-Id: I4ee18667cfcab62a4988ca9b0dd11d0fa8d46d19
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I guess the obvious question then is if #10512 just "tidies things up" or if this pr on its own isn't sufficient and the other is needed to work properly?
Yes. The idle behavior in discussion may even render idle determination useless. In such case we wouldn't care and just sent the invisible tiles at last and one tile per sliced-loop from KitPoll. |
55d678c
to
5fb0e80
Compare
Requested combined-tiles are send until timeout, at least one item, visible items first. This approach shall increase responsiveness. `KitSocketPoll::kitPoll` loops through max-clipped 100ms `poll` slices, allowing new incoming client requests. `TileCombined` request are sent as much as remaining time allows, at least on item while favoring visible items. Signed-off-by: Sven Göthel <sven.gothel@collabora.com> Change-Id: Ic71b03747e57976ce4ac69a5f97a015d5d210648
5fb0e80
to
7e036c7
Compare
Updated based on timeout (remaining time) only, disregarding potential open-ended idle/wakeup case (note)
Updated description accordingly. |
Summary
Render combined-tiles, timeout limited, invisible last
Requested combined-tiles are send until timeout,
at least one item, visible items first.
This approach shall increase responsiveness.
KitSocketPoll::kitPoll
loops through max-clipped 100mspoll
slices,allowing new incoming client requests.
TileCombined
request are sent as much as remaining time allows,at least on item while favoring visible items.
Checklist
make prettier-write
and formatted the code.make check
make run
and manually verified that everything looks okay