| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Remove a Qt 6.0 editing issue where the docs continue saying
"QSGMaterialShader and QSGMaterialShader", which is a leftover
from 5.14/5.15 times when QSGRhiMaterialShader still existed.
While we are at it, improve the code snippets and talk a bit more
about type(), inspired by recent mailing list discussions.
Change-Id: I4b21ed00285bf18e22e64a7574a273abdf8be3e5
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
(cherry picked from commit 258077e00eb8f3f4b0ef21a9a0395268b6c86532)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The QRhiBuffer does not shrink; thus we can end up with
buffer->buf->size > buffer->size. This would subsequently lead to an
out-of-bounds memory access, and a crash. Fix this by using the
uploadStaticBuffer overload which takes the size.
As a drive-by, remove pointless QByteArray::fromRawData call.
Change-Id: I40058ada6a6a5eb745ae559e8c9ed474fd41f75c
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
(cherry picked from commit f0a51eef5696782ec325b20f14cfe353d0a58d20)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
| |
Change-Id: I362b35b3d038d4fb24fab0e73cb120027f2308ea
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
(cherry picked from commit 93fe74ca433850e505f8f8940e99f3bf6a6dc050)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
| |
Fixes: QTBUG-88604
Change-Id: Id84faf648656993777f780e147917151ce05d3e0
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
(cherry picked from commit b0f49c89780c7a1ce90b2c4e161bbba0d0beb868)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
| |
Change-Id: I8fec25df83768883896d195c09489aeb23abdafd
Reviewed-by: Christian Strømme <christian.stromme@qt.io>
(cherry picked from commit ae1dc052b6b975b8a49d8d71d11d3051acd594c7)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
| |
Change-Id: I804f019f40dddce43646bf1cf91da26d4c3a4b5c
Reviewed-by: Christian Strømme <christian.stromme@qt.io>
(cherry picked from commit 9f43ccc112b748ff79e175b7fec94ec60cf311ec)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Upon a QWindow destroy() and show() we can get to syncAndRenderer
with sync not requested. It will be followed by a full sync+render
request afterwards, but first we need to gracefully survive that
somewhat obscure initial round (obscure because the window is fully
usable, so we get a swapchain, but then we do not sync, so there is no
QSGRenderer created)
Exhibited by tst_qquickwindow::headless. It correctly showed a warning
on all platforms and rhi backends, but was only fatal on macOS and Metal
for some reason.
Fixes: QTBUG-88513
Change-Id: I0396b648af0fd2bef2964b79a28359a7f806530d
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
|
|
|
|
|
| |
Fixes: QTBUG-88235
Change-Id: I47c20f46c77630c47a8bda7dfe6b080eafa8f4d7
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
- Remove links to modules and examples that are not part of Qt 6.
- Remove links to entities marked as \internal
- Add missing enum value and QML property docs where it's trivial
to do so.
Task-number: QTBUG-88156
Change-Id: I10a1c7bcc5fe0e2354ea69eaf24930362edb7415
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
|
|
|
|
|
|
|
| |
Since we depend on C++17 now, all of these can go.
Change-Id: I0484fd4bb99e4367ec211c29146c316453729959
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
...while extending the autotest to cover more complicated cases, such as
grabbing again after show-hide and doing show-grab-hide-grab-show-grab.
In fact some of these cases have not been working in Qt 5. Now the basic
render loop is fixed up to support the all the combinations threaded
does.
Task-number: QTBUG-87399
Change-Id: Id01995bc3a2660b16cfb2f8bedc84becea0be1bb
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
|
|
|
|
|
|
| |
From API review.
Change-Id: I3cda6f4b4e5a2e33356e7af4f7720e0b019b546d
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The opaque pass will rely on it (by default at least). Not having
a depth buffer will almost certainly lead to rendering errors,
albeit silently since technically it's not an error not to have one.
Just make sure there is one.
The assumption is that the Z order problem mentioned in the comments
in the referenced bug is caused by this.
Task-number: QTBUG-87399
Change-Id: Ifbf5564848f17e7ce3498190d663c1ec693e86c9
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
|
|
|
|
| |
Change-Id: I1b305bf1b74e7e7a078d7bd4b1358d773f5d2580
Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
|
|
|
|
|
|
|
|
| |
It doesn't look like qdoc can document the Quick specific
namespace docs.
Change-Id: Ic3eca2d0834c0a461f696762070e9f099e3e2641
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
|
|
|
|
| |
Change-Id: I24c792fea1c5317466a155dcb3b050fac0f765b6
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
|
|
|
|
| |
Change-Id: I1c6e9a6f949fa44265f05ce3d461d151d7e3763f
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
|
|
|
|
|
|
| |
From API review.
Change-Id: Ib1b3280b83222bb1b370640c4f733554f60d8104
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
|
|
|
|
| |
Change-Id: I1f2171e18ec3df71f7eaec1be0e0e0d1442a3860
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
|
|
|
|
| |
Change-Id: I728cecd85807eb835703a0bb8bb4acdb1f2068ae
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
With some platforms there is no valid window size yet when the render
thread hits syncAndRender (of course, it does not actually render then).
In this case we emitted an afterFrameEnd without a corresponding
beforeFrameBegin. Just make sure both signal emissions are under the same
condition.
This is tested by the frameSignals case in tst_qquickwindow but since
that's not exercised with the threaded render loop by the CI atm, the
fail was not noticed.
Change-Id: I300ffcc117daa4c6163ce15dd60ceffba659bd69
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
|
|
|
|
|
|
| |
This ports all of QtDeclarative.
Change-Id: Ie6eb4d96b4d49fbed1e8be514d03e331549cd712
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
|
|
|
|
|
|
|
|
|
| |
What exactly this will cause is another question. But at least now the
traditional OpenGL way of setting the QSurfaceFormat's swapInterval 0
will have an effect with the other APIs as well.
Change-Id: I6d50952502a70e84828ed87347e2a948299f6f42
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
|
|
|
|
|
|
|
| |
As documented in Qt 6 porting guide, qHash() should now also
accept a size_t as seed in addition to returning it.
Change-Id: I2b3ea26f631203468c071fa6ff65f95d82566132
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Replace more QLibaryInfo::location with QLibraryInfo::path
Replace old event accessors APIs, including relevant comments.
Change-Id: Ie205fc93b6e1c0dfb3dca9100fbde417ab68fc9f
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|
|
|
|
|
|
|
| |
Also fixes a plain bug in the basic render loop: using static to measure
elapsed time is broken in a multi-window setup.
Change-Id: Ie81fd9f4ec274f8ef095a8be7f280173f143de04
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
|
|
|
|
| |
Change-Id: Ib68ddb664cee1ef1530d8d0bfb59e8d97a7d2f27
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
|
|
|
|
|
| |
Task-number: QTBUG-86089
Change-Id: If1b3369d49b5088b78f683d7512b156af3765bce
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
The classic example is Shape, which needs to dirty the QQuickItem in
updatePolish() in order to get it picked up in the synchronize step.
That part is fine, but we do not want maybeUpdate() to issue a
requestUpdate() then since we are effectively in progress of doing an
update, so having another full round of polish/sync/render is a waste.
Task-number: QTBUG-86089
Change-Id: Ie41563b34da17e7134631791ed024b31e87e21e3
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Also rename the incomprehensibly named maybePostPolishRequest(), because
it is just a call to QWindow::requestUpdate() nowadays.
postUpdateRequest() makes it clear what it is.
Task-number: QTBUG-86089
Change-Id: I4c9ca1336c26d163772368067eda0f1ef84b9d97
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
|
|
|
|
|
| |
Fixes: QTBUG-86209
Change-Id: Iea09d22f09df3b50ebdf55d1c72affb5603bdcda
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
|
|
|
|
| |
Change-Id: I8cf053270a7d2c17cb3c4313ff129610aeded59a
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|
|
|
|
|
| |
Pick-to: 5.15
Change-Id: I2230e2dcb7bc2497b5dbe71a22c21d84176b5e57
Reviewed-by: Samuel Gaist <samuel.gaist@idiap.ch>
|
|
|
|
|
|
|
|
|
|
|
|
| |
TargetBlend defaults to One, OneMinusSrcAlpha, One, OneMinusSrcAlpha
when it comes to srcColor, dstColor, srcAlpha, dstAlpha.
When setting a blending different than our standard premultiplied alpha,
srcAlpha and dstAlpha must be set too. Otherwise what we get is
something that is not equivalent to Qt 5's glBlendFunc() call.
Change-Id: Ied03669edae9dcf3ec4c9c5b560195511db8d00b
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
|
|
|
|
|
| |
Taks-number: QTBUG-86234
Change-Id: I4c945edecdbe55bc5587c18599d49dfb82ade1eb
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
For large scale text, the default distance field size gives
artifacts on certain font features. We already have an environment
variable which overrides this on an application level, but this
will cause all distance fields to be rendered at the high resolution,
whereas you may just want it for one particular text field.
Since this becomes an especially important use case now that we can
embed the text fields in a 3D scene, we add a property which can
be used to tweak the base font size used for generating the
distance fields.
[ChangeLog][QtQuick][Text] Added "renderTypeQuality" property, which
can be used in cases of very large fonts, where Qt's font rasterization
may show some rendering artifacts when using the default quality.
Fixes: QTBUG-84696
Change-Id: Ie4205e82cf441562dcc65a8e432a941a3baeddf3
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Both for the swapchain and more importantly, layers. The latter was
never implemented, not in Qt 5 with OpenGL either, and it becomes a
problem for resource-limited use cases because QSG_NO_DEPTH_BUFFER still
creates depth/stencil attachments for layers even though the 2D
rendering has no use for those then.
Clarify the QQuickGraphicsConfiguration docs as well. The story is
fairly convoluted, because the useDepthFor2D flag one can set from C++
is not 100% the same as the env.var. (and it really should not be)
The flag is about relying on depth testing in 2D (and so enabling the
potentially more efficient opaque batches), but it does not prevent adding
a View3D or other stuff that requires a depth buffer. The env.var on
the other hand does both: it (depending on the platform) disables
depth (and often stencil) buffers, thus using fewer resources, and also
triggers the depth-less 2D rendering path (alpha batches only). But that
is not always compatible with 3D then (like an offscren View3D will work,
other modes may not)
Change-Id: I5ac1ce154fe78a3ec8bd1a698c1c0b944ce8077e
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Also includes stripping the shaders properly. While we do not have debug
information, we do have OpName and similar that describe the variable and
block member names. This is unnecessary in the final SPIR-V binary, and further
reduces the size somewhat.
To create debuggable shaders (for SPIR-V and D3D) with full source information,
one needs to regenerate the relevant ones with -g instead of -O.
Change-Id: I3b855ee4e9afe393cd460407c1a807d6c9c5e6c2
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
|
|
|
|
|
|
| |
Fixes: QTBUG-85965
Pick-to: 5.15
Change-Id: I2f5aba7fbde7ad2149d408d29db9219f33f13ca8
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
4da53ed1d6433730d0604b948ba3b5abeabd1eb0 fixed a regression on antialiasing
in outlined text, but neglected to include the _fwidth versions of the
shaders.
Task-number: QTBUG-85514
Change-Id: If8bae04b680044b92c983776be6ceedd0c96f547
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1. When the quick pixmap is cached, it might be deleted by a timer.
2. When its QQuickPixmapData is being deleted, its QQuickTextureFactory is also
deleted. Which informs the QSGRenderContext to postpone deleting of a texture
that belongs to this texture factory.
3. When an update is called on the _hidden_ window, QSGGuiThreadRenderLoop::renderWindow
calls rc->endSync(), which deletes postponed the texture from 2.
After that the texture must not be used.
But some QSGNode can still keep pointer to the deleted QSGTexture.
and when updatePaintNode is called, it might produce a crash.
So, suggesting a fix to inform the render loop that there is a window
with pending updates, and no need to delete textures.
Change-Id: I1487595dbb686e682ac3b91b9c3d21f401095daa
Pick-to: 5.15 5.12
Fixes: QTBUG-65170
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
After e8d9bc1bcada7d94af5a33d64a9afc860ede5b84, outline text would
blend with the background rather than the fill color on the inner
side of the outline. We should do the mix with the fill color like
before this change, but for performance, we should still discard
all pixels which are not part of the outline, which we do using
step() instead of multiplying by 1.0 - a.
Pick-to: 5.15
Task-number: QTBUG-85514
Change-Id: I4b252bdbd9dae5ee599ba7c5d1cc3609fef61622
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
|
|
|
|
|
|
| |
Now only available from ObjC code.
Change-Id: I88df6c8839fc660ffd2b8e88a789ca73a9d4accd
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
|
|
|
|
|
|
|
|
| |
Following the pattern from QtGui.
Task-number: QTBUG-85239
Change-Id: I07b4456028d0f45223ad10e55ce65f423bab6a9b
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
|
|
|
|
|
| |
Change-Id: Ia5e6ed13528fac68fe9f5f5b13471b6806d53b21
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
No problems with threaded, but when using QSG_RENDER_LOOP=basic with
Vulkan we missed setting the Vulkan instance for the second, third, etc.
window.
The problem can be seen with the quick/window example, running it with
QSG_RHI_BACKEND=vulkan QSG_RENDER_LOOP=basic makes it fail. With the
patch it will function as expected.
Change-Id: I98e7cb5ff960200dadb2fcbc30f771f9a7d9a9ae
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
|
|
|
|
| |
Change-Id: Ibcdf6cb940c0f95a5baba0887b01a149611dfe04
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
|
|
|
|
| |
Change-Id: I87798db04e0bca6c2ea173b1b946549a747b2124
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
|
|
|
|
|
|
|
|
| |
Make the before signal closer to the actual QRhi::beginFrame() call.
This fixes emitting a beforeFrameBegin unnecessarily when unexposing and
then exposing a window again.
Change-Id: Icc562a57798986c8d04c6800eabc41981c5da85b
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
|
|
|
|
|
|
|
|
| |
As required by OpenXR.
While we are at it, make the API a bit more type safe.
Change-Id: I3c6152feeb71359056830ab02d35f8cb258722c0
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|