| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
Task-number: QTBUG-64562
Change-Id: I52e07b0d8b7a5d1cc960431dcbd1a90dd3e7e518
Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io>
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
|
|
|
|
|
|
|
|
| |
The variable wasn't initialized in any constructor. This
didn't cause issues in practice, as it always got set in
optimizeRenderList().
Change-Id: I37459bb2d51bbe2bb881aaefffd6972a5345c75d
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
|
|
|
|
|
|
|
| |
And check whether nine patch pixmaps are opaque as well.
Change-Id: I23f2cb675b923eace849a1c0ad71efe1446c86c4
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
Reviewed-by: Volker Krause <volker.krause@kdab.com>
|
|
|
|
|
|
|
|
|
|
| |
If the content of a layer completely covers every pixel of
it, mark that layer as opaque so that we can avoid alpha
blending where possible.
Change-Id: Ia0be4e7a96ecddd31a26f353509de976bcc9e397
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
Reviewed-by: Volker Krause <volker.krause@kdab.com>
|
|
|
|
|
|
|
|
| |
And help avoid that we draw the same pixel multiple times.
Change-Id: I56dccfeffe6865d0aaa252c84ae693380c3bbb5b
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
Reviewed-by: Volker Krause <volker.krause@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When changing between screens, the QImage representing the contents of
the scene will be changed, but the software adaptation was only updating
the contents of the image that had change since the last frame, leading
to uninitialized image data being shown. Now QQuickWidget will force a
full repaint on the new image.
Task-number: QTBUG-61798
Change-Id: Iab200faee8cf6457f2eab6d33dddbe7781c9fcf1
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
|
|
|
|
|
|
|
| |
Task-number: QTBUG-62112
Change-Id: I8943baf6bd5261b91d8960bb227992b56b720554
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
|
|
|
|
|
| |
Change-Id: I91aab9d78ff4dced55cb118ea8f88994bd1d2c20
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|
|
|
|
| |
Change-Id: I3f978d9638ce3f47dff0adfb5fccdc0b4816a690
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
This is the default for OpenGL and D3D12 QSGLayer implementations, and
means that code using QSGLayer can end up rendering upside down if
switched the software backend.
Task-number: QTBUG-62929
Change-Id: Ib34b10c4eb834d2ef52e9005866242886b3addeb
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Normally all shader programs from materials are cached in a simple table
that is alive as long as the renderer exists, in practice this means being
tied to the QQuickWindow which is often the entire lifetime of an
application.
Use releaseResources(), which is mostly a no-op on the scenegraph level
at the moment, to free this cache.
Task-number: QTBUG-62392
Change-Id: I279e595874fee1ab4fe0dede0843a3686dea5806
Reviewed-by: Gunnar Sletta <gunnar@crimson.no>
|
|
|
|
|
|
|
|
|
|
| |
Reverts 39061af50cc3092289cdd71d17802139590ecb59 and calls endSync()
instead after syncSceneGraph().
Task-number: QTBUG-61754
Change-Id: I7b51ffdc93557bacd93927dd642ec3715980b21c
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
Reviewed-by: Roger Zanoni <rogerzanoni@gmail.com>
|
|
|
|
|
|
|
|
|
| |
CID 54558 (#1 of 1): Not restoring ostream format (STREAM_FORMAT_STATE)
4. end_of_path: Changing format state of stream d for category basefield without later restoring it.
Coverity-Id: 54558
Change-Id: Iad6e6103684c57d3ab98e78e7c91e23731632913
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|
|
|
|
|
|
|
|
| |
I am not sure why this hasn't failed in CI, but the function is
declared inside the namespace, so the definition needs to go in
there as well. Seems to be a merge error all the way back to 5.8.
Change-Id: Iedd25d3e9e756c55cc302da90bab11535bdc1b01
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|
|
|
|
|
|
|
| |
Parent the Atlas to the manager.
Task-number: QTBUG-61754
Change-Id: Ida8b0622d1dbcaafa622f72a1d210969fa61d5bf
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
|
|
|
|
|
| |
Task-number: QTBUG-61939
Change-Id: Ibb7f242241df0a7a418ab4f268487e72d5595622
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
|
|
|
|
|
|
| |
Change-Id: Iffee781932773fe22c7d946b532ba74492e1e2df
Task-number: QTBUG-59789
Reviewed-by: Robin Burchell <robin.burchell@crimson.no>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
With the 'basic' and the 'windows' render loop the scene graph
context is shared. Because of this we cannot start deleting textures
after the first window is synchronized as it may contain textures
needed by the another window, which is not yet synchronized.
QWindowPrivate::syncSceneGraph() is not calling endSync() anymore
as it doesn't know whether it is the last window or not. Instead
the renderloop is now responsible for calling endSync() once this
is safe to do.
Change-Id: Icb50ebfb447c928e38b41df7e26f3bfafdb4a811
Reviewed-by: Robert Griebl <robert.griebl@pelagicore.com>
Reviewed-by: Gunnar Sletta <gunnar@crimson.no>
|
|
|
|
|
| |
Change-Id: I3edebdd149d901992b7db5410bb871ba1bcd454e
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The software renderers dirty region calculation is done in integral logical
coordinates, which leads to quite some trouble when handling scene graph
elements with fractional coordinates (used by WebEngine for example).
The optimal solution would probably be to either use integral physical
coordinates or floating point logical coordinates, however this would seem to
require substantial changes to QPainter and QBackingStore and so on. So, this
patch instead changes the calculation to use something like interval arithmetic:
instead of just rounding each logical coordinate to the nearest integer the
renderer now uses (very carefully) both the upper and lower boundaries to make
sure that the dirty regions always err on the side of caution.
I expect this change to make rendering slower but only in situations where
previously there would be rendering errors.
Task-number: QTBUG-60393
Change-Id: I7f8e7d2739c810328c841130df9c1c7332439447
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
|
|
|
|
|
|
|
|
| |
Since I362e1cb8e10 the batch renderer defaults to
QSG_SEPARATE_INDEX_BUFFER which broke the batches visualization
Change-Id: If1d51cabb0cc4a3a98ac2c01bd78789d08fe72f7
Reviewed-by: Gunnar Sletta <gunnar@crimson.no>
Reviewed-by: Robin Burchell <robin.burchell@crimson.no>
|
|
|
|
|
|
| |
Change-Id: I46b62616fd8141f65786e9e7bcb1068bed460732
Task-number: QTBUG-60696
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|\
| |
| |
| | |
Change-Id: I7cd3623b86d7c585f69c764346366b13fdad6ec5
|
| |
| |
| |
| |
| | |
Change-Id: I140e4e35d7841813df6425d0e418aa52660ed03b
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
|
| |
| |
| |
| |
| | |
Change-Id: I9ce8f7e9dffbf7fd5280841bbe46d07eaaf9e235
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
|
|/
|
|
|
|
| |
Task-number: QTBUG-59865
Change-Id: I18911734b34e535c2c77d5a860bd776105617663
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
QSGNode::DirtyForceUpdate is 0x8000, so when you shift it left by 16
positions, it becomes the sign bit. Either the result of that shift
is int or sn->dirtyState is.
qsgbatchrenderer.cpp(302): error #68: integer conversion resulted in a change of sign
Change-Id: I84e363d735b443cb9beefffd14b958f9a622348b
Reviewed-by: Tony Sarajärvi <tony.sarajarvi@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Since 5.8, it has been possible to set the scene graph backend using
QQuickWindow::setSceneGraphBackend instead of using the environment
variables.
This caused some trouble with modules that need to know which backend
is used and relied on the environment variables or command line options
for getting this information. One example of such a module is
Qt WebEngine, which crashed because it ended up trying to use OpenGL
resources with the Qt Quick scenegraph software backend.
Task-number: QTBUG-60232
Change-Id: Ia7c4860b16a9ce6fe9af73dfe5a5d2d19ebf5bfd
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
|
|
|
|
| |
Change-Id: I84e363d735b443cb9beefffd14b8c023a37aa489
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
A Native Android build (Boot to Qt Android injection) is defined by
having both Q_OS_ANDROID and Q_OS_ANDROID_EMBEDDED flags defined,
as well as having Qt config android-embedded.
This commit enables the possibility to build native Android builds
(i.e. Qt build for Android baselayer only, without JNI)
Change-Id: I1007eb010545374038e2d09a053fe25f884efeba
Reviewed-by: Robin Burchell <robin.burchell@crimson.no>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
0a88774a0f11bf96a87012ac4a83e31ced19460b switched from using client side
pointers to VBOs, ostensibly for core profile support. Unfortunately,
some GPUs/drivers seem to suffer quite a bit with these, so only use
them if we must.
Results for changing_over_isolated_with_clip_rotated.qml:
eskil_linux_tx1:
Before: Average: 65.6 frames; using samples; MedianAll=65; StdDev=0.894427, CoV=0.0136346
After: Average: 120 frames; using samples; MedianAll=120; StdDev=0, CoV=0
eskil_linux_focault (nvidia) has a similar regression in all branches
where the original commit is present, too:
5.6 & v5.8.0 tag: 600
5.8, 5.9 & dev branches: 399
Assuming this is the sole regression in that case and we end up at the
original 600 again, that would be a 50% gain there, and an 81% increase
on TX1.
Change-Id: I44af9e67698356200f9587e77c9409fdb756519d
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
Reviewed-by: Gunnar Sletta <gunnar@crimson.no>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This only deals with Qt code. MASM has a lot of those left. We should
just update from upstream instead to get the fixes.
qv4regalloc.cpp:660:52: warning: this statement may fall through [-Wimplicit-fallthrough=]
if (leftSource->type == DoubleType || rightSource->type == DoubleType) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
qv4regalloc.cpp:666:13: note: here
case OpBitAnd:
^~~~
Change-Id: I7814054a102a407d876ffffd14b6b0e2d6b03689
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
|
|
|
|
|
|
| |
Amends change 5ef3265cd46de6579399562429e26961d6f13885.
Change-Id: I6c75273e45e235084e5aea53e83669bab85798ee
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
|\
| |
| |
| | |
Change-Id: Ib3d81ad33a6ba28d891da91271a64d5fcc4874e6
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Now set the QImage devicePixelRatio so the content is correct on all
screens.
Task-number: QTBUG-53795
Change-Id: If94edf901da1285afe9bb847b8973d568a2b7082
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
qsgmaterial.cpp:416: warning: Undocumented enum item 'DirtyCachedMaterialData' in QSGMaterialShader::RenderState::DirtyState
qsgmaterial.cpp:416: warning: Undocumented enum item 'DirtyAll' in QSGMaterialShader::RenderState::DirtyState
qsgnode.cpp:104: warning: Undocumented enum item 'DirtySubtreeBlocked' in QSGNode::DirtyStateBit
qsgnode.cpp:139: warning: Undocumented enum item 'RenderNodeType' in QSGNode::NodeType
qsgengine.cpp:75: warning: Undocumented enum item 'TextureIsOpaque' in QSGEngine::CreateTextureOption
Change-Id: Ia51d414151e42eddc5fa1198d3bad3ecbc20e30a
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
|\|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
src/qml/compiler/qqmltypecompiler.cpp
src/qml/compiler/qqmltypecompiler_p.h
src/qml/qml/qqmltypeloader.cpp
src/qml/qml/qqmltypeloader_p.h
Change-Id: I4894555ab7a0879b56bbda7a46d16d1c40c19e7c
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
QSGSimpleMaterialShader::uniformMatrixName() and
QSGSimpleMaterialShader::uniformOpacityName() cannot be reimplemented
since they are non-virtual.
Removed the suggestion, so nobody is tempted to do so.
Added a Remark in the header to fix towards intended behavior in Qt6.
Change-Id: Id23c8d54728095f143f1d0e0520590303cff91a0
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: Jan Arne Petersen <jan.petersen@kdab.com>
Reviewed-by: Gunnar Sletta <gunnar@crimson.no>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Only 65536 vertices (65536 / 4 = 16384 characters) can be drawn in one
draw call. This is why QSGDistanceFieldGlyphNode (renderType:
Text.QtRendering) creates subnodes if number of characters exceeds that
limit. QSGDefaultGlyphNode (renderType: Text.NativeRendering) missed
that logic for some reason.
Task-number: QTBUG-58852
Change-Id: I88b3fcdb8e56bc92622d3347cd638634d43df138
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The software render loop updates the window content via either an expose
event or an update event. An expose event should always flush the entire
backingstore, but previously only the newly updated region would be
flushed. The first time a window is exposed this is fine because the whole
scene would be rendered, but when hidden and shown again, the software
renderer might show that nothing has changed, and nothing would be
flushed. A new flag has been added that forces a full window flush for an
expose event.
Task-number: QTBUG-59177
Change-Id: I3700bbcc76bc97be4eb0c822e2945ebef339f11a
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
|\|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
src/qml/compiler/qv4ssa.cpp
src/quick/accessible/qaccessiblequickview_p.h
src/quick/items/qquickmousearea.cpp
src/quick/util/qquickanimatorjob.cpp
tools/qmlplugindump/main.cpp
Change-Id: I84474cf39895b9b757403971d2e9196e8c9d1809
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
GL_EXT_xxxx is not sufficient here. QOpenGLFunctions already has support
for the ANGLE and some other variants of the framebuffer multisample and
blit extensions, so use that instead of the manual checks.
Change-Id: I2d8e0850d3b0b9a9cfd9e55aa38adad07a0ba45d
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
| |
| |
| |
| |
| |
| |
| | |
Undocumented parameter 'window' in QSGRendererInterface::getResource()
Change-Id: I13cd520ad0b06abe1ad76be7aec83eae5c3e4d7c
Reviewed-by: Martin Smith <martin.smith@qt.io>
|
| |
| |
| |
| |
| |
| |
| | |
Full definitions of types are needed in static_casts.
Change-Id: I028ffc40a76cdb16cb297a181b3d9dfe9d09c945
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| |
| |
| |
| |
| |
| |
| | |
WebGL does not support using the same buffer for vertices and indices.
Change-Id: I362e1cb8e10dc2b4b99f6ce7161c4e3ce8a6f707
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
|\|
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
src/quick/util/qquickutilmodule.cpp
tools/qmllint/main.cpp
Change-Id: Ic2283f88c293ca7fc776de3e83eb4c7812309d8a
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
QSGOpacityNode::combinedOpacity() and QSGTransformNode::combinedMatrix()
are intended to be internal.
Task-number: QTBUG-53897
Change-Id: Icc73476eb8af5cdc673f7ce9bacd25ecc75202b5
Reviewed-by: Robin Burchell <robin.burchell@crimson.no>
Reviewed-by: Gunnar Sletta <gunnar@crimson.no>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This patch adds support to switch on anisotropic filtering on
QSGTexture and to QSGDefaultImageNode.
Not adding this support to QSGImageNode since it became public
in 5.8, and it does not allow additional virtual methods anymore.
Change-Id: Ibf1744845df2297f9129b1b5ce6a69d0a3b31c7c
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
Reviewed-by: Gunnar Sletta <gunnar@crimson.no>
|
| |
| |
| |
| |
| |
| |
| |
| | |
The last remnants were removed from qtbase in 5.7 making this all dead code,
so match here too.
Change-Id: I10f3f1c614562f2a97ade7cdf5002065d6f79e07
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|\|
| |
| |
| |
| |
| |
| | |
Conflicts:
.qmake.conf
Change-Id: I9d87ed86e95b5901a86cc3aa65d7ac39b0b708c2
|