summaryrefslogtreecommitdiffstats
path: root/src/plugins
Commit message (Collapse)AuthorAgeFilesLines
* Merge remote-tracking branch 'origin/tqtc/lts-5.15.13' into ↵v5.15.13-lts-lgplTarja Sundqvist2024-01-041-0/+3
|\ | | | | | | | | | | tqtc/lts-5.15-opensource Change-Id: I69854c833d45b39b1b0ccdb2c289162cd23d51a7
| * Handle nullptr returned from the shader managerMartin Andersson2022-12-161-0/+3
| | | | | | | | | | | | | | | | | | Sometimes the shader manager returns a nullptr when fetching the shader from a handle, so the return value needs to be checked before it is accessed. Change-Id: Ia021cd8f22ceb2626a7a2734b7e346fbcc8e0301 Reviewed-by: Paul Lemire <paul.lemire@kdab.com> (cherry picked from commit bffdaabaa5cd9d7fdc64e4124817b504319708e1) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* | Merge remote-tracking branch 'origin/tqtc/lts-5.15.12' into ↵v5.15.12-lts-lgplTarja Sundqvist2023-10-119-20/+44
|\| | | | | | | | | | | tqtc/lts-5.15-opensource Change-Id: If1ce1579db02b74dde74731fcf6163614961841f
| * OpenGL SubmissionContext: reset defaultFBO every time we begin drawingPaul Lemire2022-11-281-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We wrongly assumed that the default FBO id would remain constant over time once the submission context had been initialized. However it appears that when using Qt3D with a QQuickWidget/QQuickRender control with offscreen surfaces, the default FBO might change over time as the offscreen surface might get recreated. To compute the proper render target size, we rely on comparing the default FBO id against the active FBO id being used at various times in the rendering process. If the default FBO has changed since initialization (due to an offscreen windows recreation on a resize for example), we run the risk of having invalid comparisons between the default FBO and current active FBO. This results in possible erronous render size values when going through SubmissionContext::renderTargetSize. This can lead to occasional flickering or the scene not rendering (getting a reported size of 1x1) when resizing a QQuickWidget holding a Scene3D. Change-Id: I18371e8e19213c472bdb64a6f339ee0941e5cb3d Reviewed-by: Sean Harmer <sean.harmer@kdab.com> (cherry picked from commit 0e5099cc5afaef043058a6b3b459aa7e815ddf9c) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
| * Unpin previously used image units during render command parameter setupOle Wegen2022-11-171-0/+4
| | | | | | | | | | | | | | | | | | | | | | Image units are not unpinned after executing a render/compute command and before executing the next one. This can lead to failure during binding of textures to image units if the number of required image units of subsequent commands exceeds the overall number of image units. Therefore, the image units are now unpinned during parameter setup of each command. Change-Id: I9ae7be0bf8c2efe33aca836ef9e81db7c8f5b654 Reviewed-by: Paul Lemire <paul.lemire@kdab.com> (cherry picked from commit 51aa6ab005e86c6a1c5d4c91671bd8c68dde0dea) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
| * ShaderParameterPack: check we only store a single UBO/SSBO per BlockBindingPaul Lemire2022-11-031-2/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Since we cache ShaderParameterPacks over multiple frames, we need to ensure that we check that when setting a UBO/SSBO we don't already have an entry matching the block index. If that's the case we should simply replace the entry rather than append a new entry. Failing to do so results in appending a growing number of UBO entries for the same block. Change-Id: Ie7535a80b9426ce2fd5ab6ebe16ea71bd7447750 Reviewed-by: Mike Krus <mike.krus@kdab.com> (cherry picked from commit f672753556cf28d44f864457dc6338a55e2e0ed4) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
| * OpenGL graphics helpers fixesPaul Lemire2022-11-026-9/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | - Adjust warning message to match GL version they are used against - Correctly call glDrawElementsInstancedBaseVertexBaseInstance on GL 4 - Overload glDrawArraysInstancedBaseInstance to call glDrawArraysInstanced on ES 3 Change-Id: I54e054cc636327e424e4732362dfa2d79562d958 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Mike Krus <mike.krus@kdab.com> (cherry picked from commit 7678db1b8ac5a75950b70daf60baa7b42fd826d1) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
| * GLTFGeometryLoader: prevent early return on option bufferview target propertyPaul Lemire2022-10-171-9/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The glTF specs mention that the target property on a buffer view is not required: https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html#reference-bufferview Therefore, since the parser would return early if no target was specified, preventing any mesh from being loaded. This patch removes the target checking which serves no purpose. Change-Id: I7b1781060b79d1d102c1366dc1884a9f283a7f9f Reviewed-by: Sean Harmer <sean.harmer@kdab.com> (cherry picked from commit cffc59ff37fbce8fe987e2b4ee64b3d03b3928e9) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* | Merge remote-tracking branch 'origin/tqtc/lts-5.15.11' into ↵v5.15.11-lts-lgplTarja Sundqvist2023-06-098-26/+17
|\| | | | | | | | | | | tqtc/lts-5.15-opensource Change-Id: I81f01dbde95cc9cd8e98c7fb9bf3a390aa27f379
| * RenderViewBuilder: use QAspectManager::idealThreadCountPaul Lemire2022-08-164-26/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | Rather than QThread::idealThreadCount which isn't cached and could potentially return different values over time unlike QAspectManager::idealThreadCount which is cached and constant. Change-Id: Icb5fa81c93aa95af7bf020739bfefdf7e298f986 Reviewed-by: Sean Harmer <sean.harmer@kdab.com> (cherry picked from commit 925dae358913d7c614223a57552837dcc6e171e7) Reviewed-by: Mike Krus <mike.krus@kdab.com> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
| * QtAssimpSceneImportPlugin: includemocsMike Krus2022-06-271-0/+2
| | | | | | | | | | | | | | | | Task-number: QTBUG-103286 Change-Id: I19c4d8e281eca3d62be902c7b0c43e5efd024bcd Reviewed-by: Sean Harmer <sean.harmer@kdab.com> (cherry picked from commit e6e2938535c121bbb605c5e8c62ecd3ca13db435) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
| * QtDefaultGeometryLoaderPlugin: includemocsMike Krus2022-06-271-0/+2
| | | | | | | | | | | | | | | | Task-number: QTBUG-103286 Change-Id: Ifb6790d17259efdaaa300246c7333deed38a6e63 Reviewed-by: Sean Harmer <sean.harmer@kdab.com> (cherry picked from commit dccb5556a33da71a40de490686db681b19f1bc96) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
| * QtGLTFSceneImportPlugin: includemocsMike Krus2022-06-271-0/+1
| | | | | | | | | | | | | | | | Task-number: QTBUG-103286 Change-Id: I988bf4324fb5844a6c2bb8f882a54816f64631ea Reviewed-by: Sean Harmer <sean.harmer@kdab.com> (cherry picked from commit 6d3fb7102f97136f72fe8eca63e6314bc404617f) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
| * QtGLTFGeometryLoaderPlugin: includemocsMike Krus2022-06-271-0/+2
| | | | | | | | | | | | | | | | Task-number: QTBUG-103286 Change-Id: I2c08611d03cc11b7d94be008cbc2205c817cf581 Reviewed-by: Sean Harmer <sean.harmer@kdab.com> (cherry picked from commit bb726e34da5126a695f43aa031a3cc5bc372d5c3) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* | Merge remote-tracking branch 'origin/tqtc/lts-5.15.8' into ↵v5.15.8-lts-lgplTarja Sundqvist2022-11-101-27/+44
|\| | | | | | | | | | | tqtc/lts-5.15-opensource Change-Id: I503a36099765acfde0a14df04c8215b055121fa5
| * OpenGL renderer: restore surface on context when shutting downPaul Lemire2021-11-301-27/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When using a QQuickWidget and Qt3D, on shutdown and assert occurs. This is the result of the QQuickWidget expecting the surface on the context to be its own internal surface after the QQuickRenderControl has been invalidated. This conflict with what Qt3D does on shutdown as it makes the context current on its own internal offscreen surface on shutdown. Therefore, to fix this issue, we record the surface in use before Qt3D shuts down and we make the context current on it after Qt3D has shutdown. Arguably, the fix should really go in QQuickWidgetPrivate::invalidateRenderControl where the QQuickWidget should check that the current surface is indeed the one it expects and set it accordingly. Change-Id: I534dc330a30a2ad5d17a6416715d03206ef4b1c9 Reviewed-by: Mike Krus <mike.krus@kdab.com> (cherry picked from commit 559d77cacf7a3f6a29d3debec6d61a2ef8a59dc9) Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
| * OpenGL: Fix content not updated when using OnDemand and switching texturesPaul Lemire2021-11-241-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | When changing a Parameter whose value is a texture, it takes Qt3D potentially two frames to process the scene fully before it is able to draw the updated content. This patch makes it so that if we know we have the flags ParametersDirty for frame N, we request to reprocess the scene once more on frame N+1. Change-Id: Ia635e324434f92f8423a68b72d99350d96830de6 Reviewed-by: Sean Harmer <sean.harmer@kdab.com> (cherry picked from commit 672da697b147f039effbfd352b20f3f1891f31c6) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* | Merge remote-tracking branch 'origin/tqtc/lts-5.15.6' into ↵v5.15.6-lts-lgplTarja Sundqvist2022-08-161-0/+11
|\| | | | | | | | | | | tqtc/lts-5.15-opensource Change-Id: I78ddafff7a563a17c7e9ce31249faf05dc6cda69
| * Add missing sampler types and sizes to gl4 helpersJim Albamont2021-08-041-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In particular the CubeMapArray and CubeMapArrayShadow were missing from the call to get uniform size causing a crash when these sampler types were used. While fixing this, I double-checked the samplers types in uniformByteSize uniformTypeFromGLType buildUniformBuffer and made sure they were consistent Change-Id: Ief91952fd7727945ba1c4156fe053587a4060684 Reviewed-by: Paul Lemire <paul.lemire@kdab.com> (cherry picked from commit e09188f773ab287dd8c4569a1996d89113bfd5d7)
* | Merge remote-tracking branch 'origin/tqtc/lts-5.15.5' into ↵v5.15.5-lts-lgplTarja Sundqvist2022-05-161-1/+1
|\| | | | | | | | | | | tqtc/lts-5.15-opensource Change-Id: I944b4bd889244483ec8d8cc7bafe1fb27b5d00db
| * Fix call to drawBuffers in SubmissionContextMauro Persano2021-05-031-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | Implementations of GraphicsHelperInterface::drawBuffers expect an array of zero-based attachment point indexes (GL_COLOR_ATTACHMENT0 is added to the indexes internally), so we can't convert the attachment index to an OpenGL enum before calling drawBuffers. Change-Id: Ibc8af9f7c402b055c5391ad673b815c1fb65a40a Reviewed-by: Paul Lemire <paul.lemire@kdab.com> (cherry picked from commit 0157b93098fb5339cfe8fe99a111cf6e6f047565) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* | Revert "Update commercial license headers"v5.15.3-lts-lgplTarja Sundqvist2021-03-23151-3022/+3022
|/ | | | | | | | | | | This reverts commit 03e5f60e585701608c1181365faee484d7a1f14c. Revert of commercial license headers is required for Qt 5.15.3 opensource release. Task-number: QTBUG-91108 Change-Id: I359e89ed77b1b2750607617d138ebb6c316f0296 Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
* Fix light uniforms not properly being updatedPaul Lemire2021-02-032-1/+8
| | | | | | | | | | | | | | | | | | | - We cache commands and only rebuild them when really needed. When we rebuild then, we also store the mapping between uniform location and parameter name - When reusing a command, we only update the uniform values but expect the mapping between to remain the same. - When dealing with lights however, we can end up in a case where the light type changes, and therefore so does the shader data associated. The command remains cached as nothing really requires a rebuid. Yet, this means we could have more or less parameters than the number of mappings we have stored previously if the shader data defines more or less properties. To account for this, we now rebuild the mapping when building the command or if the number of parameters in the parameter pack is different than at the previous frame. Change-Id: I9400fc7e5bcb4b97ac9da69cdf794010cf81103b Reviewed-by: Mike Krus <mike.krus@kdab.com> (cherry picked from commit a7f627b29b2792154bc2a45f31bd32b74fd508b4) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Update commercial license headersTarja Sundqvist2021-02-02151-3022/+3022
| | | | | | | | | | | | | | | | Updated header.COMM to the files in tqtc-qt3d. Examples, documentation files or tests are not updated. The commercial license header may contain some additional lines so that its line count equals with the earlier license header. Reason for this is that some autotests use hard coded line numbers and a change in the line count causes failures in tests. Task-number: QTQAINFRA-4155 Change-Id: I139c8ad72c042b0900239decc36cfed4bc1c4951 Reviewed-by: Jukka Jokiniva <jukka.jokiniva@qt.io>
* Print warning about using primitive restart on ES2Mike Krus2020-12-221-0/+5
| | | | | | | Change-Id: I6007f1e152e38948b619cdeada84a86f7f4db4e4 Reviewed-by: Paul Lemire <paul.lemire@kdab.com> (cherry picked from commit 492c976b05256b29aac0df861c4be77e1eb65906) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Allow assimp to compile on non-gcc compilersJoni Poikelin2020-12-111-1/+1
| | | | | | | | | | | | Gcc 4 version check can also be dropped since it is not supported anymore. Fixes: QTBUG-88821 Reviewed-by: Mike Krus <mike.krus@kdab.com> (cherry picked from commit c6716fa7f044985389038802a296bae83951b119) Change-Id: Ice522afc92823156e9545e8e75b16c2c0a614d6f Reviewed-by: Mike Krus <mike.krus@kdab.com>
* Fix binding of CubeMapArray texturesJim Albamont2020-12-113-6/+6
| | | | | | | | | | | | | | | To bind to a specific face: use glFramebufferTextureLayer and calculate the layer as 6 * layer + face. To bind to a specific cubemap: There is no way in OpenGL to directly bind to an entire cubemap within the array. Instead bind to the entire texture as for a CubeMap with AllFaces. It is up to the drawing code to select the right cubemap and face, 6 * layer + face Change-Id: Ib9e1a598503eeba1fa729677944aba6d799f90b2 Reviewed-by: Paul Lemire <paul.lemire@kdab.com> (cherry picked from commit 94ab90f93dc5338338f30e6d78854b55353d3cb8) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* OpenGL renderer: fix use of outdated VAO when shader is reloadedPaul Lemire2020-12-013-7/+27
| | | | | | | | | | | | | | | | In a case where an existing shader was updated, VAO previously associated with the shader wouldn't be updated properly. To account for this, we now release all VAOs associated with a shader when loading a shader. Additionally we also skip VAO creation of commands referencing a shader that was loaded in the current frame. The reason for that is we know the command for that VAO is not completed. Qt3D requires a first frame to load a shader + perform introspection and creates valid command against shader only on the following frame. Change-Id: I36f89fdd78e857dc5bc4af3b539d3b32630dfad6 Reviewed-by: Mike Krus <mike.krus@kdab.com> (cherry picked from commit 7f1bcdb799ad689fc138f976eed7e12f1ce64386)
* SyncRenderViewPreCommandUpdate: fix a few odd casesPaul Lemire2020-12-011-10/+8
| | | | | | | | | | | | | | | | | - We need to perform frustum culling even if camera hasn't moved as entities in the scene could still be moving - We shouldn't return early if there's nothing to draw/or filter. Given we keep 2 sets of render command buffers we flip between every frame, we still need to update the command indices on bufferA, so that bufferB get initialized with values from bufferA at the end of the frame ... Otherwise in the case where at frame N (bufA) we have a visible object and at frame N+1 (bufB), that object is culled object. If we return early, bufB would never gets updated to contain 0 command indices. We would then end up flickering between visible and non visible object. Change-Id: I248c54b89a3795fa69c23ea952424c68696313e1 Reviewed-by: Mike Krus <mike.krus@kdab.com> (cherry picked from commit b76e9b0eccdd49a539e213a91bcaecbd98efbd74)
* Introduce QGeometryRendererPrivate::sortIndexMike Krus2020-11-222-0/+8
| | | | | | | | Lets user override the sorting order of entities. Change-Id: Iab7fd0d705f7ddcb424a59f86f8c2c28059813d1 Reviewed-by: Sean Harmer <sean.harmer@kdab.com> (cherry picked from commit c6aec09f4f6030fa11b9ba911e4c0df2fe7485b2)
* Fix GLTexture cleanupPaul Lemire2020-11-051-0/+1
| | | | | | | | | | The GLTexture class wasn't registered for cleanup on the manager. This could result in it being reuse while not being reinitialized resulting in incorrect rendering. Change-Id: I85e6a5c3b5ca9d3cfa5ac5bcb1db3695dabfa576 Reviewed-by: Mike Krus <mike.krus@kdab.com> (cherry picked from commit dbf5da312ae3f406cc45a80c6ab2464b6e2d1e14)
* Check if texture upload is full sizedJuan Casafranca2020-11-031-6/+23
| | | | | | | | | | This allows to upload full sized compressed textures which was not working before if using the TextureDataUpdate API Change-Id: Ic87e99e60e56d5a10550ca8efdc4f75a7ae1f0b1 Reviewed-by: Paul Lemire <paul.lemire@kdab.com> (cherry picked from commit c7c84944d7111b837544e22fe5a0a4fe2a150aeb) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* RenderView: remove warning about no CameraSelector being setPaul Lemire2020-10-071-2/+0
| | | | | | | | | | | | | It is after all valid in some cases to not have a CameraSelector (simply clearing the screen, blitting, rendering directly in normalized coordiates ...). While the warning might be useful for beginners, it results in the console being flooded with warnings when one of the above listed valid cases is performed. Change-Id: Id26625f35519f7afd405384289db5c4a11b95465 Reviewed-by: Mike Krus <mike.krus@kdab.com> (cherry picked from commit fea70a042dd22f8f7762caab50716f52db4badd3) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix OpenGL ES 3 shaders for QDebugOverlayMichael Brasser2020-10-021-3/+5
| | | | | | | Change-Id: I72185e825d20aad7c05e4870074831efa199972d Reviewed-by: Mike Krus <mike.krus@kdab.com> (cherry picked from commit dc430c9439ec18fd554c039464ea79db87d0fe44) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Set upload options for compressed texturesJuan José Casafranca2020-10-021-1/+1
| | | | | Change-Id: Icac2b16cfdb3ea98f1b85df397d83a8493bb60ad Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Fix the assimp scene parser clauseSean Harmer2020-10-011-1/+1
| | | | | | | | | So that it actually gets disabled whwn specifying -no-assimp. Change-Id: I23c166ef977103f2893c8df721a29d8d147badde Reviewed-by: Mike Krus <mike.krus@kdab.com> (cherry picked from commit 3166eed9ec9883cb0df5ecc4fbeae68760bb5a58) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Only use surfaceSize if m_surfaceSize is not validAndy Shaw2020-09-301-1/+1
| | | | | | | | | | | | This amends 2e3607aa120324f60832ca1cd42aaeaf22cc148d which made it always use surfaceSize. But if m_surfaceSize->size() is valid then this should be used as it will account for HighDPI setups. Fixes: QTBUG-86721 Change-Id: I634b6c3257ac2dcf8042acbbeb999960f68bb266 Reviewed-by: Mike Krus <mike.krus@kdab.com> (cherry picked from commit 010d2456d8bc02d1c8ce8e0f16f0ecd59ac08803) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Allow to set alignment requirement for an imageJuan Casafranca2020-09-281-6/+7
| | | | | Change-Id: Ifffbfd80a3d99b43e348e12bea62e3c90eed80c4 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Only release context if we own itMike Krus2020-09-231-1/+2
| | | | | | | | | | | Otherwise we release the context that is owned by the QtQuick rendering engine which leads to assert failures and crashes in the single threaded case. Change-Id: I5f5e03bbe43a0990a29d41b2fc96e714668d85fc Reviewed-by: Paul Lemire <paul.lemire@kdab.com> (cherry picked from commit 2e627f8ce77e5c184742234416da88e6393fd2c1) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* opengl: add envlight texture alias to texture unit checkPaul Lemire2020-08-271-4/+8
| | | | | | | | | | | Since those uniforms are injected by Qt3D, them not being used by a shader is valid and shouldn't result in the function return false. This could otherwise prevent valid draw calls from being made Change-Id: I562cc40d758a174bf9d315a9ab0919ae55a0b04f Reviewed-by: Mike Krus <mike.krus@kdab.com> (cherry picked from commit f9920b285767bceb7b771df000742c277ac9da91) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Rework Scene3D to fix potential crash on shutdownPaul Lemire2020-08-251-2/+6
| | | | | | | | | | | | | | | | | - Rework Scene3DRenderer/Scene3DItem to remove coupling and help simplify the flow - Introduce a Scene3DManagerNode to manager lifetime of the Scene3DRenderer. Rely on the Scene3DManagerNode dtor to know to shutdown the Qt3D renderer in the proper thread. - Try to handle the fact that destruction order between Item and SGNode is random by using an AspectEngineDestroyer helper - Stop using a sharedptr to store the QEntity on the Scene3DItem side. This can lead to crashes as the AspectEngine assumes it is the sole owner of the Entity ptr. Change-Id: I14915705eb9ab1195b2b783cbbb45076acc2ac1a Task-number: QTBUG-84847 Reviewed-by: Mike Krus <mike.krus@kdab.com>
* Job Graph dump improvementsPaul Lemire2020-08-253-16/+22
| | | | | | | | | | | - Reverse dependency order so that graph shows jobs from first to last instead of last to first - Add instance id to RenderViewBuilder jobs, otherwise it all appears as if there's a single instance of a given job when in reality there is one per RenderView Change-Id: Id47764151f0321c794068e71e21a25e921d04589 Reviewed-by: Mike Krus <mike.krus@kdab.com>
* EnvLight uniforms add name aliasesPaul Lemire2020-08-251-2/+12
| | | | | | | | | | | | | Add alias envLightIrradiance for envLight.irradiance and envLightSpecular for envLight.specular. Uniform struct can contain samplers but UBOs cannot contain samplers. Depending on the target platform, having standalone uniform names to access the env light specular and irradiance maps are therefore required. Change-Id: I006bb45865175396a8b0c2bf9ed7e9cee94abf60 Reviewed-by: Jean-Michaël Celerier <jean-michael.celerier@kdab.com> Reviewed-by: Mike Krus <mike.krus@kdab.com> (cherry picked from commit ad815df128fab21c64edd2cc963f7c9fbc9091ff)
* Protect accesses to the Render cachePaul Lemire2020-08-041-1/+4
| | | | | | | | | It seems Qt6 QHash implementation might rehash on lookups which leads to data races in case of concurrent lookups Change-Id: I9fff2c8303fdd5908acc27d6d98fc963876d65cc Reviewed-by: Mike Krus <mike.krus@kdab.com> (cherry picked from commit 308fd2598eab048de45df274c408fb2d43fb3bcf)
* rhi: fix SubmissionContext::loadShader for Unicode filesNicolas Guichard2020-07-161-7/+12
| | | | | | | | | | | | | QRegularExpression::match takes a QString and not a QByteArray, so QRegularExpressionMatch::capturedStart is not reliable to locate bytes in a QByteArray which might contain Unicode data. This fixes the issue by explicitly working on QStrings. Change-Id: Ia32ee169718d98e7197d7bfa19ca23e6e243dc25 Reviewed-by: Paul Lemire <paul.lemire@kdab.com> (cherry picked from commit 13067bf7313e2e0e9c16e952bc97dd8854695967) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* ES2: Clarify warnings about MSAAPaul Lemire2020-07-101-2/+4
| | | | | | | | | | | ES2 supports multisampling, it just doesn't support explicitly disabling multisample like we could do on desktop with glDisable(GL_MULTISAMPLE); Change-Id: I4a070e8fec60b038e141a656ddb359f0dbed441d Reviewed-by: Jean-Michaël Celerier <jean-michael.celerier@kdab.com> Reviewed-by: Mike Krus <mike.krus@kdab.com> (cherry picked from commit c3fa82cdcfdddf16efba7cebd0fecd4630a3c20e) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Blit: Fix attachment binding pointPaul Lemire2020-06-161-2/+19
| | | | | | | | | | | We assumed we would only have 15 color attachments at most. In cases you have more or less, if request Depth or Stencil binding points, we would have used an invalid value. Change-Id: I2ecfefbff043fc80efff4b5ad777f3d365f424c2 Reviewed-by: Mike Krus <mike.krus@kdab.com> (cherry picked from commit 8a9c37b3e7d57e1275706be035f588ddd27f8c53) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Disconnect the context connection when the GLShader is deletedAndy Shaw2020-06-152-0/+7
| | | | | | | Change-Id: Iacb32f9ea0047eedf87e53ebdeaeecada0f7cd48 Reviewed-by: Mike Krus <mike.krus@kdab.com> (cherry picked from commit 100eed75b4eaee031d8144b8ff1ce84361cde99c) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix a broken merge resolutionGiuseppe D'Angelo2020-06-091-18/+16
| | | | | | | | | | | | m_glContext is left not initialized by the code (which had a merge resolution marker in the middle), and there's a connect() statement against it. This makes me think this code should initialize it, instead of just initializing ctx. Change-Id: Ia1cbd5630cc6aa7b047457a9c895d94f164f9204 Reviewed-by: Paul Lemire <paul.lemire@kdab.com> (cherry picked from commit df32ce178a23f0b1e3919208dd5d786a2be9b966) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* ShaderParameterPack: use std::vectorPaul Lemire2020-06-045-46/+59
| | | | | | | | | Leads to a massive gain on bigscene-cpp (increase of 10 fps, frame preparation time reduced by 2ms) Change-Id: Ie2d1f0816fef8c28f316bb9cc8c7daf417c7f8fd Reviewed-by: Mike Krus <mike.krus@kdab.com> (cherry picked from commit 735fe47dab436727dc5ab6d66ba7feb7a868f4c3)