summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Merge "Merge remote-tracking branch 'origin/5.12' into 5.13" into ↵Liang Qi2019-03-270-0/+0
|\ | | | | | | refs/staging/5.13
| * Merge remote-tracking branch 'origin/5.12' into 5.13Qt Forward Merge Bot2019-03-270-0/+0
| |\ | | | | | | | | | | | | | | | | | | Conflicts: .qmake.conf Change-Id: Ic6c2ec0c4d0a0d4e0c94857020d3804ce9cf9ff6
| | * Bump versionKari Oikarinen2019-03-211-1/+1
| | | | | | | | | | | | Change-Id: I628b1d9c25ed6fb2fb62563a214040797df0758f
* | | docs: Fix qdoc warningsKavindra Palaraja2019-03-274-3/+103
|/ / | | | | | | | | | | | | * Added some missing documentation Change-Id: I214b108c084aeff501bed85845153aa80fa61e6d Reviewed-by: Johan Helsing <johan.helsing@qt.io>
* | Fix compilation with QT_NO_WARNING_OUTPUTKai Koehne2019-03-222-14/+15
| | | | | | | | | | | | | | | | | | | | Use qCWarning instead of qWarning if logging into a category. This fixes compilation with QT_NO_WARNING_OUPUT, but in addition also avoids unnecessary string formatting if the category is disabled. Fixes: QTBUG-74359 Change-Id: I0e316a833f3f7d4a9122377a1154e739bcb080b1 Reviewed-by: Johan Helsing <johan.helsing@qt.io>
* | BRCM: fix namespace confusionGeorg Leugner2019-03-222-2/+3
| | | | | | | | | | Change-Id: I146dd41d54889af694b829bf1e6d47e03e892b27 Reviewed-by: Johan Helsing <johan.helsing@qt.io>
* | Fix documentation for bufferLocked propertySimon Hausmann2019-03-191-2/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | Commit 2824a71e5c28ec1843edc056f2c17c6274378f1d silenced the qdoc warning about the bufferLocked property, but it did not fix the underlying problem that the existing documentation would be shown. This patch reverts the change and fixes it by making the \property command match the name of the property, not the getter. Similarly, the \qmlproperty annotation was missing entirely. Change-Id: I66281ea4df0162b14ebfab15f1cc18162ea0e8ef Reviewed-by: Johan Helsing <johan.helsing@qt.io>
* | [docs] Fix qdoc warningsKavindra Palaraja2019-03-194-9/+10
| | | | | | | | | | Change-Id: I57e89057a238064e1270d036b656d261b85e50e7 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* | [doc] Fix mismatch in function signature to address a qdoc warningKavindra Palaraja2019-03-191-1/+1
| | | | | | | | | | | | | | * In the header file, this was uint32_t Change-Id: I5c2e343a2f8ec04b71ef4db577062b5c76f64c72 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* | Merge remote-tracking branch 'origin/5.12' into 5.13Qt Forward Merge Bot2019-03-164-5/+45
|\| | | | | | | Change-Id: I6d63f7390a3d26ce8c63c8e5de63b673d6831395
| * Merge remote-tracking branch 'origin/5.12.2' into 5.12Qt Forward Merge Bot2019-03-151-0/+24
| |\ | | | | | | | | | Change-Id: Ib5989d03612370116193266742e26094700be5c9
| | * Add changes file for Qt 5.12.2v5.12.2Antti Kokko2019-02-211-0/+24
| | | | | | | | | | | | | | | Change-Id: Iec24d90c7b6fb4c2eb88b440bbf104d6ef94a25b Reviewed-by: Johan Helsing <johan.helsing@qt.io>
| * | Client: Fix incorrect damage region for window decorationsJohan Klokkhammer Helsing2019-03-141-5/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The previous implementation had gaps in several places. [ChangeLog][QPA plugin] Fixed a bug where the window decoration's damaged area didn't cover the entire decoration. This meant some compositors would not redraw those areas. Change-Id: Ic72663dde301936635b2a1cfa90570a53227e8ea Fixes: QTBUG-74341 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io> Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.io>
| * | Compositor: Call eglUnbindWaylandDisplayWL when destroying the compositorJohan Klokkhammer Helsing2019-03-142-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If unbind is not called, some drivers may try to do cleanup that depends on a valid wl_display in eglTerminate. Arguably, this could/should also have been fixed in the affected drivers. There is a display_destroy signal that the driver should listen to, to avoid using dangling wl_display and wl_global pointers. However, by using eglUnbindWaylandDisplayWL we can force the cleanup to happen before wl_display_destroy. Which is what this patch does. Change-Id: Id9062de896b723838bcecac3902031e6b172a6de Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io> Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.io>
* | | Compositor: Fix incorrect texture size for client buffers when dpr > 1v5.13.0-beta1Johan Klokkhammer Helsing2019-03-111-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | The old implementation used QQuickItem::width and height, which changes with the devicePixelRatio. We now use the new property, QWaylandSurface::bufferSize, instead, which is the actual pixel size of the buffer. Change-Id: I430f46746ed2b8f0330e0d220718f58004b3bd2e Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* | | Update plugins.qmltypes for Qt 5.13Kai Koehne2019-03-072-6/+40
| | | | | | | | | | | | | | | | | | | | | | | | Task-number: QTBUG-73739 Task-number: QTBUG-74042 Change-Id: I2074321978f0c32aabeb0d3d4873c5d12d09946d Reviewed-by: Kai Koehne <kai.koehne@qt.io> Reviewed-by: Johan Helsing <johan.helsing@qt.io>
* | | Compositor: Add missing WaylandSurface::bufferSize propertyJohan Klokkhammer Helsing2019-03-071-1/+2
| | | | | | | | | | | | | | | | | | | | | ...and also add revision info for the bufferSizeChanged signal. Change-Id: I2b8e9bea7cafc70c078e74b191c3c87b322ff216 Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* | | Compositor: Add revision number for new APIJohan Klokkhammer Helsing2019-03-053-5/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Revisioning API in QML serves two purposes: - Making sure QML code developed against an older version of Qt doesn't change its behavior when run with newer versions. This can otherwise happen due to QML being interpreted, and QML's liberal scoping rules. - Allowing developers to target an older version of Qt, but developing a newer version by explicitly asking for an older import. Change-Id: I837cd449028c4b84c33afa97bcf6c1149801facd Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* | | Client xdg-shell: Add test for switching popupsJohan Klokkhammer Helsing2019-03-053-1/+94
| | | | | | | | | | | | | | | | | | Task-number: QTBUG-73524 Change-Id: Ie9a13aeae52a7576699147e5515e2ed32a3a4d1c Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
* | | Client: Don't send illegal wl_pointer.set_cursor requestsJohan Klokkhammer Helsing2019-02-274-8/+65
| | | | | | | | | | | | | | | | | | | | | | | | | | | When the cursor focus' wl_surface is destroyed, or the pointer leaves a surface, we have to reset the enter serial to avoid sending illegal set_cursor requests. Change-Id: I0c886e4123acb4aebd325b07bf15b9d3fa8589da Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
* | | Compositor: Add missing version information for new APIJohan Klokkhammer Helsing2019-02-272-0/+22
| | | | | | | | | | | | | | | Change-Id: Ieec4a97d901f236d2cec003d8b35e2f95b1b2aea Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* | | Client tests: Add convenience for getting cursor surfaceJohan Klokkhammer Helsing2019-02-272-31/+32
| | | | | | | | | | | | | | | | | | | | | Let's simplify all those pointer()->surfaceCursor() calls. Change-Id: I83c51f460fa2313a0b84c8c64509d48027156443 Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
* | | Client: Decrease buffer_scale for small cursor themesJohan Klokkhammer Helsing2019-02-272-11/+103
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Not all setups or themes have cursors with a matching DPI. In such cases, wl_cursor_load_theme will then return a theme that is the closest resolution it can get. With the previous implementation, cursors themes without a high dpi version would become become really tiny on high DPI displays. This patch prevents it by setting a lower wl_surface.scale for those themes. This also implements proper tracking of the cursor surface's entered outputs (i.e. if the entered surface is destroyed, the scale is reset, and similarly the following sequence of events should also be handled: wl_surface.enter(wl_output@1) wl_surface.enter(wl_output@2) wl_surface.leave(wl_output@2) In the old implementation, we would be stuck with the scale from wl_output@2, but now we now should correctly get the scale of wl_output@1. [ChangeLog][QPA plugin] Cursors on high DPI screens are now scaled up if the cursor theme does not have an appropriate high resolution version. Change-Id: Ic87d00e35612b5afdf8c2e3a4463fcfef1f1f09d Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
* | | Merge remote-tracking branch 'origin/5.12' into 5.13Qt Forward Merge Bot2019-02-262-0/+2
|\| | | | | | | | | | | Change-Id: I4c99725971d7c15448ca3f01306ae869af9ef057
| * | Fix the build with -no-guiLiang Qi2019-02-252-0/+2
| |/ | | | | | | | | | | Change-Id: I9ff6ac4e33e89691e06965515a54e91a831b7a0a Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | Client: Add test for wl_data_offer leaksJohan Klokkhammer Helsing2019-02-204-30/+153
| | | | | | | | | | | | | | | | | | | | | | Also refactors the mocking code for data device manager and implements its isClean method to verify there are no leaks after each test. MockCompositor::DataDevice now persists across get_data_device requests. Task-number: QTBUG-73825 Change-Id: Ib5866e0c54d021e12557f9a96f27950010f2611b Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* | Client: Don't leak wl_data_offersJohan Klokkhammer Helsing2019-02-205-50/+62
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [ChangeLog][QPA plugin] Fixed a leak of wl_data_offers. Data offers would previously leak when a surface with keyboard focus was destroyed... or if it was hidden... or if it changed type, and so on. Make keyboard focus follow a wl_surface instead of a QWaylandWindow. This also fixes a couple of other minor issues, such as the mRepeatTimer not stopping when a wl_surface was destroyed. Ideally, we would have a QWaylandSurface class separate from the QWaylandWindow, but that's out of scope for this fix. Fixes: QTBUG-73825 Change-Id: I56e502512c3959e3fcdb63744adc4a7698e3d53d Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* | Merge remote-tracking branch 'origin/5.12' into 5.13Qt Forward Merge Bot2019-02-164-9/+19
|\| | | | | | | Change-Id: Ifb1c6c64abbb5c453092eeb1aff91572b57de410
| * Client xdg-shell: Fix crash when switching popupsJohan Klokkhammer Helsing2019-02-124-9/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The call to flushWindowSystemEvents() sometimes caused new popups to be shown in the middle of hiding another. I.e. if multiple events show and hide surfaces, they would be shown/hidden in opposite order of their corresponding events. QMenus sometimes suffered from this (can be seen with the qopenglwidget example from qtbase). When the flush was added 5 years ago in 50f43a0c5, it was to "reduce the chances of seeing a bad frame". I don't see any rendering artifacts, though, and I can't find any bug report on it. So let's hope it's safe to remove the hack. [ChangeLog][QPA plugin] Fixed a crash that sometimes happened when switching popups. Also adds more info to the workaround warning message that appears when a popup grab is attempted and there already is another grabbing popup that is not the parent. Fixes: QTBUG-73524 Change-Id: Ibfcbb48c4bbe295c2be1a30add2d7e05cad398c5 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* | Client: Refactor cursors and fix various bugsJohan Klokkhammer Helsing2019-02-1513-214/+433
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch is mostly a cleanup to prepare for implementations of xcursor-configuration, but also fixes a couple of issues. Most of the logic has now been moved out of QWaylandDisplay and QWaylandCursor and into QWaylandInputDevice and QWaylandInputDevice::Pointer. QWaylandDisplay now only contains mechanisms for avoiding loading the same theme multiple times. There is now only one setCursor method on QWaylandInputDevice, accepting a QCursor and storing its values so changing scale factor doesn't require calling setCursor again. QWaylandInputDevice::Pointer::updateCursor() is called instead. Cursor buffer scale is now set according to enter/leave events of the cursor surface itself instead of the current window, this fixes incorrect buffer scales for cursors on windows that span multiple outputs. The window buffer scale can still be passed into the seat as a fallback until the first enter event is received. This also fixes a bug where the QWaylandBuffer of a bitmap cursor could be deleted while it was being used as a cursor. [ChangeLog][QPA plugin] Fixed a bug where the DPI of bitmap cursors were not sent to the compositor, leading to the compositor incorrectly scaling the cursor up or down. [ChangeLog][QPA plugin] Fixed a bug where bitmap cursor hotspots were off when the screen scale factor was different from the bitmap cursor device pixel ratio. Task-number: QTBUG-68571 Change-Id: I747a47ffff01b7b5f6a0ede3552ab37884c4fa60 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* | Fix race condition in autotestsPaul Olav Tvete2019-02-122-10/+19
| | | | | | | | | | | | | | The QVector m_surface is modified in both threads. Change-Id: I1818a5e1307d191f1613513b86703eaa7bda3c6e Reviewed-by: Johan Helsing <johan.helsing@qt.io>
* | Merge remote-tracking branch 'origin/5.12' into 5.13Qt Forward Merge Bot2019-02-091-2/+2
|\| | | | | | | Change-Id: I1b00775ff2d9ede97dbcd9f9deb9f2a947cf1ae5
| * Doc: Fix wrong link to isBufferLockedNico Vertriest2019-02-071-2/+2
| | | | | | | | | | | | Change-Id: I5024e50af6e403e9373181948b36548bc0862f9b Reviewed-by: Paul Wicking <paul.wicking@qt.io> Reviewed-by: Johan Helsing <johan.helsing@qt.io>
* | Client xdg-shell: Add test for tooltips on popupsv5.13.0-alpha1Johan Klokkhammer Helsing2019-02-065-7/+140
| | | | | | | | | | | | | | | | This used to cause protocol errors. Task-number: QTBUG-71734 Change-Id: Ic937210fc42c93f1d411fb0fb4f269de01f07b5b Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* | Client test: Prefer UTF-8 when ASCII is also availableJohan Klokkhammer Helsing2019-01-301-0/+38
| | | | | | | | | | | | | | | | | | | | | | [ChangeLog][QPA plugin] Fixed a bug where pasting from the clipboard would prefer ASCII over UTF-8, causing loss of special characters. The bug was fixed in QtBase, this is just the test. Task-number: QTBUG-54786 Change-Id: Ibe08bf455ad0be8fdd7a3e082dec6131f19c25d6 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* | Add client test for data deviceJohan Klokkhammer Helsing2019-01-309-0/+279
| | | | | | | | | | Change-Id: Id89ec40a3f484808385401829a09a43781a1bed7 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* | Client tests: Add simple test for keyboard pressJohan Klokkhammer Helsing2019-01-305-5/+101
| | | | | | | | | | Change-Id: Ib28be5277af9145834c7808f993c747e21845616 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* | Client: Fix incorrect decoration size when QT_SCALE_FACTOR is setJohan Klokkhammer Helsing2019-01-305-28/+51
| | | | | | | | | | | | | | | | | | [ChangeLog][QPA plugin] Fixed a bug where window decorations were to small for for the content when QT_SCALE_FACTOR was set. Fixes: QTBUG-72993 Change-Id: I1ed26e038c27f7c4454a6bcc04f0849e4af789e7 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* | Add deprecated support for wl_scalerJohan Klokkhammer Helsing2019-01-2412-0/+840
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [ChangeLog][Compositor] Add deprecated support for the deprecated wl_scaler. Some clients are stuck on the unofficial Weston protocol wl_scaler instead of the standardized and stable wp_viewporter. This implements optional support for wl_scaler. This patch has been written to be easily removable in Qt 6, and touches a minimal amount of other code. The implementation can be tested using the new manual test compositor: tests/manual/wlscaler. Weston 1.11.1 has a demo client named weston-resizor, which can be used to test. Note that although newer versions of Weston also have weston-resizor, those versions use wp_viewporter instead of wl_scaler, so you really need 1.11.1 or earlier to test. Fixes: QTBUG-69635 Change-Id: Id572e28044cd764eaf63b1259a92bc589711c39d Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* | Fix platform integration not building with -no-feature-wayland-serverJohan Klokkhammer Helsing2019-01-233-8/+14
| | | | | | | | | | | | | | | | | | | | | | | | The plugins subdir which includes the platform plugins was not built without the feature wayland-server. Moves the checks inside the plugins folder to make it build. Also disables some tests that won't pass without the compositor API. Fixes: QTBUG-73169 Change-Id: Ie68badd2ff62ee544c31edaff7c732082e0a4115 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* | Compositor tests: Test xdg-shell stable instead of unstable v5Johan Klokkhammer Helsing2019-01-234-77/+104
| | | | | | | | | | Change-Id: Ib9dbad2e7312dab94cecbc1a14315dcb47c8c46a Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* | Merge remote-tracking branch 'origin/5.12' into devLiang Qi2019-01-2226-109/+1675
|\| | | | | | | | | | | | | | | | | Conflicts: .qmake.conf src/3rdparty/protocol/qt_attribution.json src/client/qwaylandintegration.cpp Change-Id: I475889f2817c7094b68a2948fdd34ddf8b0c486f
| * Merge remote-tracking branch 'qt/5.12.1' into 5.12Paul Olav Tvete2019-01-2117-106/+909
| |\ | | | | | | | | | Change-Id: I6ca92b605c55b0c8941d42e40fad624f00a65cd3
| | * Add changes file for Qt 5.12.1v5.12.1Antti Kokko2019-01-111-0/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + dccec9b282ae15fa65fd61698dd1cb47325e5c8e Bump version + 2b79a41096a0d626659f5647743005a963c3fe7d Client: Don't require an input device for non-grabbing popups + 685591a4e9f295e6bcc1859704a0b6109af255ce Client: Rename m_topmostPopup to clarify its goal + 49ea0fc16a499514ebc0c254a983e86bcda88dd6 Compositor: Fix crash after surface destruction + fa57079a227b92218c5b23dafdcb7f547acb635d Don't crash if view is deleted from surfaceDestroyed signal + 9ce3088d226fddc18bcac170fa5cc5be3c29e371 Add changes file for Qt 5.11.3 + f563e0e196d74d0884b4e599729e36f9f172f0e2 Client: Fix incorrect enter serial in set_cursor + b81cf22561600e96113270114a8d5fab750ad64f Fix build due to missing QDebug include + 4fa1ed2dfe7ae42b940d6d28e4c1066853e7768a Fix unused variables, in preparation for adding warning_clean + 4aeb655d161250c317bdb5a6a86e6a6b01ef5685 Fix compilation with gcc 4.8 + fb0109c6acb8269d1fcdc20b7494c455ff2c74ad Scanner: Add include for QList + a8fed20181729cae70de43079c4a34ad1780cfd7 use new feature name xkbcommon_evdev -> xkbcommon + d25b3b7f1059d5561bce3efe7ea903ea76d4e888 Fix invalid QWaylandOutputMode comparison operator + 7f7502865f980a7d72dc04ffc5f25eecf0d414a8 tests: minor fixup in tst_WaylandCompositor::comparingModes() + 88041986f448c14871fac76ee01280736af3f382 Fix scaling if wrong attached window size is returned + 99526a2227e8a0bccffb504b10f72aeee47e290d Specify X11 dependency explicitly + 1dc85b95ab0adc1e805d059e2c35c671ef790011 Client: Full implementation for frame callbacks + f2dc41b5babf0a7b51a1735f290540d7be695042 Compositor: Fix crash in QWaylandSurface::waylandClient + 09b6fcf3ec501cb94d89833745264a16c2a74209 Client xdg-shell: Fix protocol error for tooltips on popups + 00c0bad3184e32ff0b1dd799b7ef121eaa737c0d Client: Fix various input related crashes for events without focus + 34e03bf56cb080f3fae7dd31f0eb1d72e3bb518c Client: Fix incorrect damage for decoration edges + 143a6ad82ea0ded69da482eff1750082fd5b2a6a Client: Don't assume windows have surfaces in QWaylandInputContext::update + 024be9dcae26a0d88ffb76f9fca252f2135ad7c9 Bump version + c584db87cf924f3a3d883288de8c2f4210186af6 wl_eglstream_controller implementation for NVIDIA + 6258c4994200348220be6f35667a2c0f4b705539 Revert "Client: Full implementation for frame callbacks" + 280cc2befba99ffde25fe7c287174143a9539d32 Fix flickering (black frames) of wayland clients on NVIDIA + 657b6ce0677e05984a2f11900c66dbca775ff313 Fix black client windows when not using window decorations on NVIDIA Change-Id: I902f66c4b1d61e967264f20ed0884b3908d612cc Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
| | * Fix black client windows when not using window decorations on NVIDIADominik Holland2019-01-081-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QWaylandGlContext::makeCurrent() tries to be smart and only call eglMakeCurrent() if really needed. This causes problems on NVIDIA where the call is always needed. Change-Id: I08d881d69f79a0fd4ea83a65780052e269a566be Task-number: QTBUG-71697 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
| | * Fix flickering (black frames) of wayland clients on NVIDIADominik Holland2019-01-081-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When using the threaded render loop rendering the texture we acquired from the eglstream is done in a different thread. This rendering needs to be finished before the next acquire call for the eglstream is done otherwise we might end up rendering a broken (black) frame and see the client flicker. To fix this, make sure to send the frame callbacks after the rendering was completed and not before the rendering starts. Change-Id: I5a75914d14d2df7fa8b6bbd526f87e3ef6208cd6 Task-number: QTBUG-71697 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
| | * Revert "Client: Full implementation for frame callbacks"Johan Klokkhammer Helsing2019-01-083-103/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This caused regressions because QtQuick depends on swapBuffers for throttling animations. We probably need to emulate a blocking swapBuffers and continue after a timeout, but until we have a patch for this, revert this to avoid releasing a regression. This brings back the bug with a frozen event loop when a surface is waiting for a frame callback, but this is preferable to a regression. This reverts commit 1dc85b95ab0adc1e805d059e2c35c671ef790011. Fixes: QTBUG-72578 Change-Id: If6435a947aae5e9fd775404649a392bfafe9130a Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
| | * wl_eglstream_controller implementation for NVIDIAPaul Olav Tvete2019-01-0812-1/+827
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds a new client buffer integration: wayland-eglstream-controller, which contains the EGLStream logic from wayland-egl, and additionally uses NVIDIA's wayland-eglstream-controller protocol to avoid the issue where the stream is not ready at the time of first buffer attach. This is not enabled by default. Can be used like this: QT_WAYLAND_CLIENT_BUFFER_INTEGRATION=wayland-eglstream-controller ./pure-qml Fixes: QTBUG-71697 Change-Id: I73bb2a8fe9852afe1b5807cbb8c35dc4c7624dad Reviewed-by: Johan Helsing <johan.helsing@qt.io>
| * | Remove stray surfaceDestroyed() declarationPier Luigi Fiorini2019-01-181-1/+0
| | | | | | | | | | | | | | | Change-Id: I1a23d6ab5a455603990db269446c15a012c0f879 Reviewed-by: Johan Helsing <johan.helsing@qt.io>
| * | Remove unimplemented QWaylandCompositor::createSurfaceViewJohan Klokkhammer Helsing2019-01-181-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | Seems like it was just a left behind by mistake in fffa0f76 back in 2011. Fixes: QTBUG-73070 Change-Id: I3055d2c72cd6752de9917d765684ff049c0dbc6c Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.io>