-
Notifications
You must be signed in to change notification settings - Fork 770
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
anyInput - should only depend on incoming messages from coolwsd. #10681
Conversation
bf9c16b
to
f77b67b
Compare
I think I added this because the order of events were like this before the change: layout visible area, invalidate visible area, layout the rest, release SolarMutex and let COOL render a tile; so with a large enough document and large enough invalidation we laid out the entire document before trying to paint the visible area. |
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.
Looks good; I tested that the "let's render the visible area before the full doc layout" case of #9735 continues to work with this:
before:
13:39:35.820 global.js:564 1733747975820 OUTGOING: uno .uno:Paste
...
13:39:35.829 global.js:564 1733747975829 INCOMING: delta: nviewid=1000 part=0 width=256 height=256 tileposx=7680 tileposy=0 tilewidth=3840 tileheight=3840 oldwid=1 wid=58 ver=58 imgsize=1
=> 9 ms
after:
13:45:14.641 global.js:564 1733748314641 OUTGOING: uno .uno:Paste
...
13:45:14.652 global.js:564 1733748314652 INCOMING: delta: nviewid=1000 part=0 width=256 height=256 tileposx=7680 tileposy=0 tilewidth=3840 tileheight=3840 oldwid=1 wid=89 ver=93 imgsize=1
=> 11 ms
So the cost is the ~same, the old 500ms cost is not returning.
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, @mmeeks. One suggestion, but looks good otherwise.
@@ -748,7 +748,7 @@ Document::Document(const std::shared_ptr<lok::Office>& loKit, const std::string& | |||
, _docId(docId) | |||
, _url(url) | |||
, _obfuscatedFileId(Uri::getFilenameFromURL(docKey)) | |||
, _queue(std::make_shared<KitQueue>()) | |||
, _queue(new KitQueue()) |
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.
If we always create a KitQueue
and it seems never reset or re-assign it, perhaps we don't need a pointer at all. This removes an indirection and the many _queue &&
.
Not on outgoing messages that have come from core. We should not treat rendering / tile requests as input. Signed-off-by: Michael Meeks <michael.meeks@collabora.com> Change-Id: I0ced5ee0f07796e8aae015f31c91cb7845443ea8
It is no longer used externally, also remove un-used KitQueue reference, and constify session accessor for later. Signed-off-by: Michael Meeks <michael.meeks@collabora.com> Change-Id: I69ca1d6b01a4ca97b6d4815c21c76c5ce8c939e6
f77b67b
to
5b166f4
Compare
rebased |
Not on outgoing messages that have come from core.
We should not treat rendering / tile requests as input.
Change-Id: I0ced5ee0f07796e8aae015f31c91cb7845443ea8
Summary
TODO
Checklist
make prettier-write
and formatted the code.make check
make run
and manually verified that everything looks okay