| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In Qt we call flush() when we think the window might need to be
updated. It is also possible to trigger a flush while painting.
Two fixes:
1) If there are attempted flushes between beginPaint() and endPaint,
queue them up, and do them in endPaint().
2) Make sure we only commit the buffer once: after that the
compositor owns the buffer, and it can repaint on its own.
Change-Id: Ibf61068fa95760eb67dbc0b1d0534854114ea528
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
clang-tidy -p compile_commands.json $file \
-checks='-*,modernize-use-default-member-init,readability-redundant-member-init' \
-config='{CheckOptions: [{key: modernize-use-default-member-init.UseAssignment, value: "1"}]}' \
-header-filter='qtwayland' \
-fix
Afterwards I ran search and replace on the diff to clean up some whitespace errors:
- Replaced '(\n\+[^:\n]*)(:\s+\+\s+)' with '$1: '
- Replaced '(\n\+[^,\n]*)(,\s+\+\s+)' with '$1, '
- Replaced '\n\+\s*\n' with '\n'
I also had to do some manual edits, because for some reason, this particular
clang-tidy check doesn't trigger for some files.
Change-Id: I3b3909bac4bf20108bbe8ad1e01bcc54236dae1b
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|
|
|
|
|
|
|
| |
Applied automatic fixes using clang-tidy's modernize-use-nullptr, and some
manual cleanup to prevent QFlag macros to be affected.
Change-Id: I88f94390185bc6e6f23693b68723cd5710815ae6
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When a buffer is committed multiple times, not all compositors (i.e. Weston)
send a matching number of release events. This caused clients to freeze on some
occasions on those compositors because they were waiting for a release event
that never came.
This reverts commit 5f38652cd52c03e9df8600f5f41e044820c3062c.
Task-number: QTBUG-64631
Change-Id: I818d9bd71e5d9ce7a351a2010914b7219b1975bc
Reviewed-by: David Edmundson <davidedmundson@kde.org>
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The QPlatformBackingStore can get flushed multiple times between paints.
Flush sets the front buffer, but it does not create a new backbuffer.
We can't do so without doing an expensive pre-emptive copy.
This means we send the same front buffer multiple times. This is
somewhat questionable with regards to the Wayland specification, but
seems to work.
If we do send a buffer multiple times we can't consider it free until
the last attached buffer is released; otherwise we end up painting into
a buffer whilst the server is still using it, leading to
flickering.
Change-Id: I8235eed6a85f0d52b37544e7bcb623b16a9dd832
Reviewed-by: Marco Martin <mart@kde.org>
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Currently tests are licensed under GPL-EXCEPT, examples under BSD and
src under LGPL so replase old license headers with new & proper ones.
Also remove old & unused license files
Task-number: QTBUG-57147
Change-Id: Ia6a738798736c275dc309ccfa5b627dc2178d241
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
|
The old logic didn't care to listen for wl_buffer.release events
so it always drew in the same buffer, potentially resulting in
tearing if the compositor was scanning out the buffer at the same time.
Instead properly cycle between a few buffers and don't reuse the same
one until the release event was received.
The old code also used to throttle the redraws, unless the buffer was
changing, that is unless the window was getting resized. This is now
lost, and no throttling is ever done. Doing it properly, by waiting
for the frame callback before committing the new buffer shows very
noticeable lags with many applications when resizing, because they
paint many times per resize event, so they fall behind the cursor.
A proper fix will be to implement the support for requestUpdate(),
and using it in the applications.
Change-Id: I02732c34769a5c75a6ad68c095bae916e4b274d3
Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
|