aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* BenchFrustumCulling: fix pointless QQuaternion::fromEulerAngles() callsHEADdevMarc Mutz3 days1-6/+8
| | | | | | | | | | | | | | | | | QQuaternion::fromEulerAngles({}) is fromEulerAngles(0, 0, 0), which is the identity quaternion (w=1, x=0, y=0, z=0). Use a constexpr global constant for this instead of forcing the compiler to re-evaluate this out-of-line function over and over again. Also fixes an ambiguity error caused by the addition of a fromEulerAngle() overload in QtBase. Amends b1a8f963b2b3dd0ee0e970ae958c544af7d4f340. Pick-to: 6.10 6.9 6.8 Change-Id: I0f3094695a8d4b09aadc58bf3092b1abae45e554 Reviewed-by: Volker Hilsheimer <[email protected]>
* QQuick3DXrAnchorManager: make QQuaternion construction constexprMarc Mutz3 days1-1/+1
| | | | | | | | | | | | | | | | | | | | | The QQuaternion::fromEulerAngles() function is out-of-line, so cannot be constexpr. But we don't need to call it to construct a static const object of a trivial rotation; we can just create the quaternion directly. This turns a mutex-protected run-time ("magic statics") initialization into a compile-time constant. It also fixes a compile-error that the introduction of the new fromEulerAngles(EulerAngles) caused, due to the call here using untyped braced initialization (even though just dropping the braces would have been shorter). Amends 41aa8aa2d47ab710dd48b536e58bd6080feafe1e. Pick-to: 6.10 6.9 6.8 Change-Id: I62e98062aaa2d596342005d337328d3b790d600d Reviewed-by: Christian Strømme <[email protected]>
* 3p: embree compile fixesTim Blechmann3 days3-0/+42
| | | | | | | | | | embree does not compile with appleclang in c++23 mode due to missing headers. Fixes: QTBUG-138245 Pick-to: 6.8 6.9 6.10 Change-Id: I7884b7c310040dc1e4057a7d5626b1b85767885c Reviewed-by: Laszlo Agocs <[email protected]>
* Don't automagically release registered texture providersChristian Strømme6 days1-13/+7
| | | | | | | | | | | | Just do what the documentation says, register the texture provider and keep it until the caller unregisters it. This change also removes the memory stat for extension textures as we'll need a slight different approach then what we do for the other resources - We were increasing based on usage, which isn't correct. Pick-to: 6.10 6.9 6.8 Change-Id: I7dd094bfddb3fc4cb02ca07c011c131e8dc8ba0c Reviewed-by: Andy Nichols <[email protected]>
* QSSGLightmapBaker: minor fixesJonas Karlsson6 days2-0/+18
| | | | | | | | | | - Add missing destructor. - Make sure process() waits for the invoked method to finish. - Set status to Finished when setupLights() fails. Pick-to: 6.10 Change-Id: I3b2f55d6d01cf77ad4e912d818b06fbedae0278c Reviewed-by: Laszlo Agocs <[email protected]>
* Lightmapper: add missing denoise callback functionJonas Karlsson7 days2-0/+17
| | | | | | | | | | Design Studio needs this callback function to be able to trigger denoising. Pick-to: 6.10 Change-Id: Ie37c73f2ad11d1852da8cd6e906c6f9e203494a8 Reviewed-by: Miikka Heikkinen <[email protected]> Reviewed-by: Laszlo Agocs <[email protected]>
* QSSGLightmapBaker: fix build without QCoreApplicationThiago Macieira8 days1-0/+2
| | | | | | | | | | | | Amends 095d7746b392d3770726953d3755f2b3d137155d. This fixes the build if QT_QUICK3D_HAS_LIGHTMAPPER isn't defined. qssglightmapbaker.cpp:125:72: error: unused parameter ‘ctx’ [-Werror=unused-parameter] Pick-to: 6.10 Task-number: QTBUG-139033 Change-Id: Ic362d473b80f7405e127fffd5d47dc10d5eb4beb Reviewed-by: Jonas Karlsson <[email protected]>
* CMake: silence warningTim Blechmann8 days1-1/+1
| | | | | | | | CMake warns about multiple "COMMENT" keyword arguments, so we quote it. Pick-to: 6.8 6.9 6.10 Change-Id: Iefd15fca2fe67b38feb38fc4b96e90fb7eac13ec Reviewed-by: Alexandru Croitor <[email protected]>
* Add layering supportChristian Strømme9 days40-24/+977
| | | | | | | | | | | This change introduces layering, or tagging, support to QtQuick3D making it possible to group nodes to different layer and have the camera render only the parts of the scene that belongs to a layer. [ChangeLog] Added layering support Change-Id: I7c447395e8a387b5bc6a42bbe74638dfa2454bbf Reviewed-by: Andy Nichols <[email protected]>
* QSSGLightmapBaker: add has-lightmapper if-guardJonas Karlsson9 days2-2/+27
| | | | | | | | | | | Since there might be some missing dependencies otherwise, we add an if guard for QT_QUICK3D_HAS_LIGHTMAPPER and implement the member functions only if it is set. Fixes: QTBUG-139033 Pick-to: 6.10 Change-Id: Id5ba0af943102c44479e09cec817136a71adae3f Reviewed-by: Laszlo Agocs <[email protected]>
* Update license info in fog.glsllibChristian Strømme2025-08-061-1/+3
| | | | | | | | | | This amends 29aa09ae62a94da037a7d06cc815738061ee8544 where the initial license header was added. Fixes: QTBUG-136137 Pick-to: 6.10 6.9 6.8 Change-Id: I81c4d286dc52961381e9108211b3526ce6f33274 Reviewed-by: Andy Nichols <[email protected]>
* Doc: Fix incorrect usage of \generatelistTopi Reinio2025-08-061-1/+1
| | | | | | | | | | | | | | | | | | | | | The \generatelist command takes an optional argument that affect how the members are listed, for example, `classesbymodule` which creates an annotated list of the classes in a named C++ module. `groupsbymodule` is not recognized or documented. QDoc falls back to generating a list of all members of a group in this case. While the end result is correct, this relies on an undocumented feature that is likely to change and break. Replace these instances with an explicit \annotatedlist command that produces the same output. Pick-to: 6.10 Task-number: QTBUG-138901 Change-Id: Idc09856c99cc49a5909cb86684e7e18a4fe84190 Reviewed-by: Paul Wicking <[email protected]>
* Expose qt_rhi_properties to effectsLaszlo Agocs2025-08-062-0/+23
| | | | | | | | So that keywords such as NDC_Y_UP will become available in postprocessing effects too, not just custom materials. Change-Id: I9a16825684db556aa333a50431f9aa9aa6dd83b0 Reviewed-by: Andy Nichols <[email protected]>
* Expose QQuick3dRenderStats to QMLLuca Di Sera2025-08-061-0/+6
| | | | | | | | | | | | | | | | | | | | | | | The type is accessible through the `renderStats` property of the exposed View3D type but is not exposed itself. qmllint produces a warning about this as it cannot resolve the type that is being accessed. Thus expose the type to the QML type system through an appropriate registration macro, in particularly naming the resulting type `RenderStats` to align it with the pre-existing documentation for it. Additionally marking it as QML_UNCREATABLE due to the already existing documentation for the type stating that the type cannot be created directly but only retrieved from a View3D. Additionally register the version of introduction for documentation purposes. Pick-to: 6.10 Task-number: QTBUG-138170 Change-Id: Ifba348924815cd4457c653dae1f8dc6ebf188756 Reviewed-by: Andy Nichols <[email protected]> Reviewed-by: Fabian Kosmale <[email protected]>
* QSSGRenderContextInterface: avoid fwd declaration for QSSGDebugDrawSystemTim Blechmann2025-08-052-2/+32
| | | | | | | | | | | | Building qt with c++23 (clang-20) requires QSSGDebugDrawSystem to be fully defined, as std::unique_ptr<QSSGDebugDrawSystem> is used as defaulted argument which apparently causes the QSSGDebugDrawSystem destructor to be instantiated. Adding an overload to avoid the defaulted parameter Pick-to: 6.10 Change-Id: I8e7b862b6c2323e3bf63104aa96c9cf00fb68dc8 Reviewed-by: Christian Strømme <[email protected]>
* Update dependencies on 'dev' in qt/qtquick3dQt Submodule Update Bot2025-08-051-4/+4
| | | | | Change-Id: I2808ff1b36acde306d26218564a8348c2bf79bbb Reviewed-by: Qt Submodule Update Bot <[email protected]>
* CapsuleGeometry: rename Uv to uv/UVJonas Karlsson2025-07-312-20/+20
| | | | | | Pick-to: 6.10 Change-Id: I95372dfc931a56731ce2ae87f360893e2cfe12ef Reviewed-by: Christian Strømme <[email protected]>
* CMake: Don't publicly propagate private Qt modules for public modulesAlexandru Croitor2025-07-292-1/+4
| | | | | | | | | | | | This causes user projects to automatically find the private Qt module packages and expose the Private targets and their headers, without the user project explicitly opting into this, and without showing them a warning. Pick-to: 6.10 Task-number: QTBUG-138712 Change-Id: Id474a4ec35ff19840a352fc537490c1df6e9a617 Reviewed-by: Alexey Edelev <[email protected]>
* Expose view matrix to post-processing effectsLaszlo Agocs2025-07-296-1/+36
| | | | | | | [ChangeLog] VIEW_MATRIX is now available in post-processing effects. Change-Id: I1c665f52e09c1ddb03c8c9e023a4503365173cb5 Reviewed-by: Andy Nichols <[email protected]>
* Doc: Fix Light property formatting in shadow mapping docsDheerendra Purohit2025-07-281-1/+1
| | | | | | | | | | Replace broken tag syntax with \l to format Light::shadowBais and Light::use32Bitshadowmap as inline code links. Pick-to: 6.9 6.10 Fixes: QTBUG-138591 Change-Id: I2d5c555bcf24e0aadd9eba2fb339f445f49581d8 Reviewed-by: Jonas Karlsson <[email protected]>
* Lightmapper: denoise all lightmaps in fileJonas Karlsson2025-07-251-15/+14
| | | | | | | | | Denoise all the lightmaps in the file instead of going through the model with keys in the scene. Also updates the stage reporting properly Pick-to: 6.10 Change-Id: I82aa32f891be0a76901503844f113b8ffd829793 Reviewed-by: Laszlo Agocs <[email protected]>
* Lightmapper: improve progress trackingJonas Karlsson2025-07-252-27/+161
| | | | | | | | | | | Adds a ProgressTracker class for keeping track of the stage and the fraction of the total progress direct light, indirect light and denoising take. Also adds progress reporting for direct light and denoising. Pick-to: 6.10 Change-Id: I6bd7372be56dbf39fdfd2e8b7c483ae62d9c2575 Reviewed-by: Laszlo Agocs <[email protected]>
* Move the check for Passthrough support to setPassthroughEnabled()Elias Hautala2025-07-237-16/+15
| | | | | | | | | Checking for passthrough support during every frame causes a huge drop in frame rate when using Varjo Aero. Pick-to: 6.10 6.9 6.8 Change-Id: I37b2dd9787a1f33188aa461f7f881aae8a06ecd5 Reviewed-by: Paul Olav Tvete <[email protected]>
* Lightmapper: bake/denoise in own RHI contextJonas Karlsson2025-07-226-103/+382
| | | | | | | | | | Runs the lightmapper in its own thread with its own RHI context. This makes it possible to interact with the main window as well as makes the bake window not randomly freeze. Pick-to: 6.10 Change-Id: I6912abb3ae1bc9468a441907b5d116aae481dc60 Reviewed-by: Laszlo Agocs <[email protected]>
* Fix lineparticles fragment shader ubo layout for multiviewLaszlo Agocs2025-07-211-0/+5
| | | | | | | | The buffer layout does not match the vertex shader's declaration when QSHADER_VIEW_COUNT is 2. Update based on the vertex shader. Change-Id: I71cafae1917be463cd0b6d53cec009b154eb2cab Reviewed-by: Andy Nichols <[email protected]>
* scenegrabber_xr: make --disable-multiview workLaszlo Agocs2025-07-211-1/+1
| | | | | Change-Id: Ic51d80af3f885fe5325b3053633774023088c88b Reviewed-by: Andy Nichols <[email protected]>
* Update dependencies on 'dev' in qt/qtquick3dQt Submodule Update Bot2025-07-181-4/+4
| | | | | Change-Id: Id55f7d504aa2089997a85c9a93617190e4c25013 Reviewed-by: Qt Submodule Update Bot <[email protected]>
* Harden namespacingTim Blechmann2025-07-184-1/+15
| | | | | | | | | | | | | When using namespaced Qt, we need to prevent symbol clashes with symbols of the same name. * namespace some publicly visible classes * hide classes in implementation in an anonymous namespace Task-number: QTBUG-138543 Pick-to: 6.10 Change-Id: I55aa14e684425fd092539c94a9fe943477e7300c Reviewed-by: Andy Nichols <[email protected]>
* Update dependencies on 'dev' in qt/qtquick3dQt Submodule Update Bot2025-07-151-4/+4
| | | | | Change-Id: I0fa8b43f6a30c7b6bb09e569f24cbf0a1b3bef87 Reviewed-by: Qt Submodule Update Bot <[email protected]>
* Remove year from Qt Copyright in REUSE.tomlLucie Gérard2025-07-142-11/+11
| | | | | Change-Id: I4fa2507d6c72b20931538e4973f6187458ca58c8 Reviewed-by: Joerg Bornemann <[email protected]>
* qquick3dparticleutils: check extent of qt_quick3d_sine_table[]Marc Mutz2025-07-101-1/+4
| | | | | | | | | | | | | | | Let the compiler count the number of elements in qt_quick3d_sine_table[], and then statically assert that it's as expected. We had enough cases where zero-inialized elements were added at the end silently by using the old technique. As a drive-by, add Q_CONSTINIT. Amends 0b4f59d0660b9d508c394e0b3039637364c89287. Pick-to: 6.10 6.9 6.8 6.5 Change-Id: I1c3f6136803f5d2e292ea7eb827ef470efb54a61 Reviewed-by: Volker Hilsheimer <[email protected]>
* QSsgRenderBufferManager: Fix QStringBuilder deprecation warningMarc Mutz2025-07-101-1/+3
| | | | | | | | | | | | The module appears to be compiled with QT_ASCII_WARN. Fix by using QLatin1StringView literals instead of plain C strings. Amends edaef10f41074b0616c3ec42d379cf4bd9cc9278. Pick-to: 6.10 Change-Id: I8da2cbef7c1684a33f2c5141fb4b1640370aef43 Reviewed-by: Volker Hilsheimer <[email protected]>
* QSSGLightMapper: Fix QStringBuilder deprecation warningsMarc Mutz2025-07-101-3/+6
| | | | | | | | | | | | | | | | | | | | | | | Says GCC: qssglightmapper.cpp:2777:77: required from here 2777 | const QString tmpPath = QFileInfo(d->options.source).absoluteFilePath() + ".tmp"; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~ qstringbuilder.h:400:37: warning: ‘static void QConcatenable<const char [N]>::appendTo(const char*, QChar*&) [with long long int N = 5]’ is deprecated: Use fromUtf8, QStringLiteral, or QLatin1StringView [-Wdeprecated-declarations] 400 | QConcatenableEx<B>::appendTo(p.b, out); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~ The module appears to be compiled with QT_ASCII_WARN. Fix by using QLatin1StringView literals instead of plain C strings. As a drive-by, port from QSharedPointer(new QFile) to the more efficient QSharedPointer<QFile>::create(). Amends 8d2873fb8ffbb4992f4392fb09d6df3b5b027fed. Change-Id: Ide790ffde8bd56c095e45c53c11e8d0ee0cfbfe3 Reviewed-by: Volker Hilsheimer <[email protected]>
* Include what you need: qquaternion.hMarc Mutz2025-07-1027-0/+49
| | | | | | | | | | | | | | | | qmatrix4x4.h will lose its qquaternion.h include, so include qquaternion.h explicitly in all files that mention 'QQuaternion', unless, for a foo.cpp, the own foo.h has already included it. Picking all the way back, even though the include removal won't be picked as far back, because it's the correct thing to do and cannot fail. Also add forward declarations, where they suffice. Pick-to: 6.10 6.9 6.8 6.5 Change-Id: Ibfc1e941978c750c05e57e3772f3a68bc921c81f Reviewed-by: Volker Hilsheimer <[email protected]>
* qquick3dparticleutils_p.h: fix a forward declarationMarc Mutz2025-07-101-2/+2
| | | | | | | | | | | The QQuick3DNode class is declared _inside_ QT_NAMESPACE, so it also needs to be forward-declared there (was: at global scope). Amends 7b71caf544884f1e082ad57fa99bc53352f066c0. Pick-to: 6.10 6.9 6.8 6.5 Change-Id: I738bb100c30f8376105b182ca4257993ca7cdaef Reviewed-by: Volker Hilsheimer <[email protected]>
* Update dependencies on 'dev' in qt/qtquick3dQt Submodule Update Bot2025-07-071-4/+4
| | | | | Change-Id: Ib8a7116bd33a1bfc21ea025eaa8713618e900900 Reviewed-by: Qt Submodule Update Bot <[email protected]>
* Lightmapper: modify bake progress windowJonas Karlsson2025-07-042-50/+115
| | | | | | | | | | | | | - Rearrange the output window components. Add a label for showing the baking stage and remove the elapsed time label. Add a Frame around the log text. - Add some proper types checks of the payload (fixes a bug where 0 numbers would mean false and not update the value). Pick-to: 6.10 Change-Id: Ibbecfeb9dd37a3987e5b46204c37203871b82af1 Reviewed-by: Kristoffer Skau <[email protected]>
* Lightmapper: Rasterize in 1024x1024 tilesJonas Karlsson2025-07-041-67/+88
| | | | | | | | | This removes the need for lots of VRAM in the rasterize phase when baking big lightmaps. Pick-to: 6.10 Change-Id: Ieb708d1d9352e21d416f29648764e6d6b920869f Reviewed-by: Kristoffer Skau <[email protected]>
* Update dependencies on 'dev' in qt/qtquick3dQt Submodule Update Bot2025-07-031-4/+4
| | | | | Change-Id: If3f02ad0abe27d27a32202b8dd2a53926caf0c01 Reviewed-by: Qt Submodule Update Bot <[email protected]>
* Lightmapper: Per model bakingKristoffer Skau2025-07-031-854/+846
| | | | | | | | | | Restructure the baking stages to be per model and continously use a temp lightmap file during the baking process. This allows us to cache way less data to lower the memory usage further. Pick-to: 6.10 Change-Id: I0305f22724befbf5c27664162da6a55f4aa31b1f Reviewed-by: Jonas Karlsson <[email protected]>
* Add lightmapviewer toolJonas Karlsson2025-07-0211-0/+760
| | | | | | | | | | | | | This is a debugging tool for viewing Qt's baked lightmap files. While users can use this tool, it is intended for development only. The tool is both a GUI tool for viewing lightmaps and a command line application that accepts flags for printing info and extracting the content of the lightmap file. Pick-to: 6.10 Change-Id: I95279e248ea82e0e1384bbf880dcecc7af778dfe Reviewed-by: Laszlo Agocs <[email protected]>
* Lightmapper: Fix when we set models to bakeKristoffer Skau2025-07-025-18/+19
| | | | | | | | | | | | | | Currently we set the baked lighting models on the lightmapper prior to triggering the extra frame that's necessary. This is not safe. Instead query the lighting models when we are on the baking frame, right before starting. Added a new callback to call the necessary function on the layer. Amends 780ab6e03190710dd921425b37afae5a12a36b63 Pick-to: 6.10 Change-Id: I71475d3d55b2f1b49557c4bf2df67097b3928e6b Reviewed-by: Jonas Karlsson <[email protected]>
* Update dependencies on 'dev' in qt/qtquick3dQt Submodule Update Bot2025-07-021-4/+4
| | | | | Change-Id: I81ae70793c5298824f1abfe876a00a4554b11cfb Reviewed-by: Qt Submodule Update Bot <[email protected]>
* Update dependencies on 'dev' in qt/qtquick3dQt Submodule Update Bot2025-06-301-4/+4
| | | | | Change-Id: I4901086f1210ca1a7f96b52a670c245d9e0952f7 Reviewed-by: Qt Submodule Update Bot <[email protected]>
* Update dependencies on 'dev' in qt/qtquick3dQt Submodule Update Bot2025-06-271-4/+4
| | | | | Change-Id: I1f0908acc454c1599d9c43fc0f04669da924bcb2 Reviewed-by: Qt Submodule Update Bot <[email protected]>
* Lightmapping: Make randomness deterministicJonas Karlsson2025-06-271-8/+8
| | | | | | | | | | Use the workgroup index as the seed of the randomness generator. This is effectively the same as using a thread_local seed as done previously except it will be deterministic between runs. Pick-to: 6.10 Change-Id: Iab02b58e48e431e1e54ea5efd4da331feae391dd Reviewed-by: Kristoffer Skau <[email protected]>
* Update dependencies on 'dev' in qt/qtquick3dQt Submodule Update Bot2025-06-251-4/+4
| | | | | Change-Id: I4154a0e289bda44f41277ceec1c967afe0e1b663 Reviewed-by: Qt Submodule Update Bot <[email protected]>
* Don't try to load an empty vertex bufferJonas Karlsson2025-06-251-17/+20
| | | | | | | | | | | | | | Previously, it tried to load a mesh even if the mesh data vertex buffer was empty. This caused it to display warning about mesh building failure. This patch add check for an empty vertex buffer. This suppresses the warning. Amends: edaef10f41074b0616c3ec42d379cf4bd9cc9278 Fixes: QTBUG-137979 Pick-to: 6.10 Change-Id: I2ec4f39cf04802d16181e3cb485715653b9cf54d Reviewed-by: Jonas Karlsson <[email protected]>
* lancelot: Disable flaky MotionBlur testJonas Karlsson2025-06-251-0/+3
| | | | | | | | | MotionBlur is deprecated and the test is flaky so disable it in the lancelot test suite. Pick-to: 6.10 6.9 6.8 Change-Id: Ica6b28d069da1c64fabe19bdd07c52354dcb7b73 Reviewed-by: Eirik Aavitsland <[email protected]>
* Lightmapper: Render direct light as tilesJonas Karlsson2025-06-242-142/+162
| | | | | | | | | | | | | | | | | Previously, the direct light was rendered to a x3 sized texture that got blurred and downscaled to get smooth looking edges. The drawback with that method is that it needs 9x the amount of RAM and VRAM. Instead, we now render this upscaled texture in smaller tiles. Four floats for defining the UV region is added to the lightmap rasterizer shader. These floats are then setup for the tiles so that they are rendered into a subregion but with higher resolution. These tiles are then blurred and downscaled and put into the direct light texture map. Pick-to: 6.10 Change-Id: I63484dc0856f8e4ee7a9fc43dd1b9b7a2d1b3506 Reviewed-by: Kristoffer Skau <[email protected]>