summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Remove erronous entry about QFragmentOutput in the changelogv5.11.0-rc2v5.11.0Andy Shaw2018-05-081-3/+0
| | | | | Change-Id: I879dea61e9861e756885d5d66e00cd930fc64636 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Avoid locking up on Radeonv5.11.0-rc1Laszlo Agocs2018-05-044-5/+29
| | | | | | | | | Could not find a decent way to do a renderer/vendor string query due to the convoluted internals so just used a define for now. Task-number: QTBUG-67937 Change-Id: I0dcfa41377a5e430d3f7973c5aaa01535100c53c Reviewed-by: Liang Qi <liang.qi@qt.io>
* Remove race in texture data uploadPaul Lemire2018-05-042-12/+24
| | | | | | | | | | | | | In the non locked submission phase of the renderer, the GLTextures must have had their content/properties already updated as this is too late to actually create or upload texture based on references which may be invalid or outdated. This wasn't properly handled. We now perfom the GLTexture creation and data upload when both the RenderThread and AspectThread are locked. Task-number: QTBUG-67989 Change-Id: I07ac23120e8d37a86e60d2b892d1437b8cb0b3dc Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* gltf sceneloader: request mirrored=false for texturesLaszlo Agocs2018-04-272-0/+3
| | | | | | | | | | | The default of mirrored=true is unlikely to be the right thing to do here. Task-number: QTBUG-54881 Change-Id: I484927be984d69fdb75713401e0be1135831f8d1 Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Tuukka Turunen <tuukka.turunen@qt.io> Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
* Add changes file for Qt 5.11.0Antti Kokko2018-04-251-0/+28
| | | | | Change-Id: I635108e43d444f227cd9d136970dfc54a9eac67a Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Animation: Make a fuzzy comparison when verifying cubic rootsSvenn-Arne Dragly2018-04-242-37/+55
| | | | | | | | | | Accept cubic roots that are close enough to 0 or 1 that the difference is likely a numerical error. Also add a regression test to catch one of these corner cases. Task-number: QTBUG-67886 Change-Id: Ia05650699638e4bb7d13fa18b31d71071909bd51 Reviewed-by: Christian Stromme <christian.stromme@qt.io>
* Doc: Remove non-existent license file from qt_attribution.jsonTopi Reinio2018-04-241-1/+0
| | | | | | | | This caused the output to be malformed and conflict with other attribution docs. Change-Id: Id82a5e1780d14963e0905316827b4c1d9df04057 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Doc: Use the correct module command for QML typesTopi Reinio2018-04-245-5/+5
| | | | | | | | | A number of QML types used \qmlmodule instead of the correct \inqmlmodule. Change-Id: I330f664ede6d4d1a05efef8ee13ad33105ade19b Reviewed-by: Sean Harmer <sean.harmer@kdab.com> Reviewed-by: Martin Smith <martin.smith@qt.io>
* Make sure we could lock the surface before querying its sizeSvenn-Arne Dragly2018-04-181-2/+5
| | | | | | | | | | | | The surface is a frontend object that might be destroyed before we try to access it in jobs that query its size using RenderSurfaceSelector::renderTargetSize(). This change makes sure we have a valid lock on the surface before querying its size. Co-authored-by: Paul Lemire <paul.lemire@kdab.com> Task-number: QTBUG-67789 Change-Id: Id7eaee999ad3a7040955f7497a959a2989b99501 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* ES2: Do not set Mip Levels on GL Textures when its not supportedv5.11.0-beta4Andy Nichols2018-04-121-2/+4
| | | | | | | | | By checking the for the TextureMipMapLevel feature we can avoid loads of qWarning messages when running on ES2. In practice these calls were just ignored QOpenGLTexture, but this will prevent the warnings. Change-Id: Ie61ce9ac546b48395b247e78f8fbbbed82399ede Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* ES2: Ignore mode when calling bindFrameBufferObjectAndy Nichols2018-04-123-21/+29
| | | | | | | | When using bindFrameBufferObject with ES2 the only available target is GL_FRAMEBUFFER. Change-Id: Ie8fd50a57deeae3e8e02885e954ff73d85712c14 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* ES2: Enable Renderbuffer usage with either Depth or StencilAndy Nichols2018-04-123-6/+24
| | | | | | | | | | Current we require a combined DepthStencil RenderBuffer, however this is an extension in ES2 so it's not a given that it will be available. It is still possible to setup separate Depth and Stencil buffers for those devices that only support that (similar to what Scenegraph does). Change-Id: Ia112b30e229bfc553cd0cdc0f8dd8b57290c7081 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Fix compilation with QT3D_RENDER_ASPECT_OPENGL_DEBUG defineAndy Nichols2018-04-122-3/+3
| | | | | Change-Id: If89cc9d4be85ad36dfd7549e58327d8a525210e9 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Remove unused variables detected by clang-clFriedemann Kleint2018-04-123-7/+2
| | | | | | | | | | nodes\qnode.cpp(391,34): warning: lambda capture 'this' is not used [-Wunused-lambda-capture] backend\gltfimporter.cpp(345,19): warning: unused variable 's' [-Wunused-variable] backend\gltfimporter.cpp(353,19): warning: unused variable 't' [-Wunused-variable] text\qdistancefieldglyphcache.cpp(79,13): warning: private field 'm_glyph' is not used [-Wunused-private-field] Change-Id: Id546607d95561efa7547fb5d7df0b03184bc5ed7 Reviewed-by: Mike Krus <mike.krus@kdab.com>
* render: Fix build with clang-clFriedemann Kleint2018-04-121-1/+1
| | | | | | | | | | Unexport class EntityCasterGatherer since it is in a anonymous namespace, fixing: jobs\raycastingjob.cpp(62,25): error: '(anonymous namespace)::EntityCasterGatherer' must have external linkage when declared 'dllexport' Task-number: QTBUG-63512 Change-Id: I9e32e98077d58f98622a25543742b75f5d5d18d3 Reviewed-by: Mike Krus <mike.krus@kdab.com>
* Handle the check of binary versus ascii STL files more robustlyAkihito Izawa2018-04-121-10/+17
| | | | | | Task-number: QTBUG-67552 Change-Id: I30fc50415f155ce990e72287a99bfca35fcf9713 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Fix assimp attributionMike Krus2018-04-091-2/+2
| | | | | Change-Id: I18e96aa4dfe3689d27f041dbdcad43556a61c889 Reviewed-by: Liang Qi <liang.qi@qt.io>
* Update Assimp to 4.1Mike Krus2018-04-09544-14092/+65681
| | | | | | | Fixes build with C++17 / XCode 9.3 Change-Id: Ic1c19cc4b86e54e72dd4cfe054ec6d66f64b5a07 Reviewed-by: Mike Krus <mike.krus@kdab.com>
* Fix CommandThread context creationLaszlo Agocs2018-04-051-5/+13
| | | | | | Task-number: QTBUG-67498 Change-Id: I4a98a81e2c5fc9fda221505b7504c3ec93e47d69 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Add replacement materials examplev5.11.0-beta3Sean Harmer2018-04-0486-2347/+212301
| | | | | | | | | | | | | | All texture assets were made by KDAB under the CLA. The material "sphere" mesh is from Allegorithmic and published under the Creative Commons 4 license. See paragraph 1.2 of https://www.allegorithmic.com/legal/substance-share Task-number: QTBUG-61415 Change-Id: I23d61723bbac561e22e11fa57105b29148c01699 Reviewed-by: Sean Harmer <sean.harmer@kdab.com> Reviewed-by: Andy Nichols <andy.nichols@qt.io> (cherry picked from commit 74c06c02f896c6aba408cfd0857d317378572736)
* Replace the toyplane mesh with one created by KDABSean Harmer2018-04-041-50969/+13227
| | | | | | | | Task-number: QTBUG-61415 Change-Id: I4557959c3c1068be5ef977d05a9e0443545ae919 Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io> Reviewed-by: Andy Nichols <andy.nichols@qt.io> (cherry picked from commit 07053f8424cbb3fffd89a9774bd5aba737d07f08)
* Doc: Add and improve examples in render states and material systemSvenn-Arne Dragly2018-03-256-21/+290
| | | | | | | | Also switch \code to \qml. Change-Id: I3f216a3abd55fdf51295ed14715f6f1ffc5e2ea4 Reviewed-by: Paul Lemire <paul.lemire@kdab.com> Reviewed-by: Nico Vertriest <nico.vertriest@qt.io>
* Fix findCubicRoots for cases where coefficients are close to zeroSvenn-Arne Dragly2018-03-252-5/+136
| | | | | | | | | | | | | | | The equation is a*x^3 + b*x^2 + c*x + d = 0. Previously, we would divide by zero if a = ~0. This change also makes sure that we return zero no roots in the case where a = ~0 and c*c - 4*b*d < 0, and the case where a = b = c = ~0. Finally, we return 0 or 1 if we're close enough to assume that it could be a numerical error. This change also adds tests for the above cases. Change-Id: I426d2fc6175b3aff6fe099845bf63d433c158536 Co-authored-by: Christian Strømme <christian.stromme@qt.io> Reviewed-by: Christian Stromme <christian.stromme@qt.io>
* Fix race in startup/shutdownPaul Lemire2018-03-233-0/+10
| | | | | | | | | | | | | When the AspectEngine with a QRenderAspect (and RenderThread) is started and stopped within the same loop, there was a race in which Renderer::shutdown would possibly be called while Renderer::initialize wasn't complete. Apart from testing, such starting and stopping within the same loop is strongly discouraged as Qt3D doesn't have time to create an offscreen surface to properly release GL resources. Change-Id: Ie6f0a0698c213e3015bc9c51efc48d8706f20b3b Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* ObjectPicker: remove renderer includePaul Lemire2018-03-201-1/+1
| | | | | | Change-Id: I56be5702b898516a563cb8d2bd89bc436cc1be30 Task-number: QTBUG-61151 Reviewed-by: Mike Krus <mike.krus@kdab.com>
* sendbuffercapturejob: remove non needed manager memberPaul Lemire2018-03-203-9/+0
| | | | | Change-Id: If014ea0445fba14a0bdb7898920a5c8b5f55fd23 Reviewed-by: Mike Krus <mike.krus@kdab.com>
* SubmissionContext: improve specifyAttributePaul Lemire2018-03-201-8/+9
| | | | | | | By reusing existing VAOVertexAttribute instance Change-Id: I78554a5849f76a01e901371e4dcb363779906f86 Reviewed-by: Mike Krus <mike.krus@kdab.com>
* AbstractRenderer: add entries into API enumPaul Lemire2018-03-192-2/+6
| | | | | Change-Id: I0f204437f457392a8009262d0067dacf03e55a64 Reviewed-by: Mike Krus <mike.krus@kdab.com>
* Fix uninitialized value in updateskinningpalettejob.cppPaul Lemire2018-03-191-0/+1
| | | | | Change-Id: Ibdd95cb5d3c2f52e0df989cf2c699d02e5693268 Reviewed-by: Mike Krus <mike.krus@kdab.com>
* Fix uninitialized value in sendrendercapturejobPaul Lemire2018-03-191-0/+1
| | | | | Change-Id: I9a334ea1cd299a65fb4dd6c4ed0a7bb6834fe95d Reviewed-by: Mike Krus <mike.krus@kdab.com>
* MaterialParameterGathererJob: remove unneeded renderer memberPaul Lemire2018-03-198-14/+5
| | | | | Change-Id: I05bef741048fbb29fab261b48f48a20d1d131bcc Reviewed-by: Mike Krus <mike.krus@kdab.com>
* ViewportNode: make computeViewport a static functionPaul Lemire2018-03-194-4/+5
| | | | | Change-Id: I8d4362830457df149791b8c2472cb123b6222bf3 Reviewed-by: Mike Krus <mike.krus@kdab.com>
* tst_loadscenejob: remove warningsPaul Lemire2018-03-191-2/+2
| | | | | Change-Id: I2db7a8dccac5d6ec808734786c8f8349f84dcfe4 Reviewed-by: Mike Krus <mike.krus@kdab.com>
* AbstractRenderer: add setOpenGLContext methodPaul Lemire2018-03-194-2/+6
| | | | | | | | | | This will allow to only deal with the AbstractRenderer class interface in the QRenderAspect. Then in practice, the setOpenGLContext function may just be ignored by renderers which don't care about OpenGL Change-Id: I1adc9c203e78a31ef1054a3be36e703b4e1a6f3e Task-number: QTBUG-61151 Reviewed-by: Mike Krus <mike.krus@kdab.com>
* SendRenderCaptureJob: remove hard dependency to RendererPaul Lemire2018-03-195-17/+37
| | | | | | | | This will allow it to be reused by the various renderers Change-Id: I5707496a40b91077a363734cc72af820ec5ca8c4 Task-number: QTBUG-61151 Reviewed-by: Mike Krus <mike.krus@kdab.com>
* Remove QItemModelBuffer: unused and incompletePaul Lemire2018-03-193-478/+0
| | | | | | | Also this shouldn't be tied to the Qt3DRender aspect Change-Id: Ia7c70094f3faa8a95c7440549a56d6f5ca517348 Reviewed-by: Mike Krus <mike.krus@kdab.com>
* RenderStates: rework to split node and rendering partPaul Lemire2018-03-1911-527/+591
| | | | | | | | | | The apply method was removed from GenericState and its subclasses. This allows to keep the GenericStates in the aspect part and let the renderer perform the right calls based on the state class it is provided with. Change-Id: I9c3ac04b4eb489e7443e67615e35e850c0aba07f Task-number: QTBUG-61151 Reviewed-by: Mike Krus <mike.krus@kdab.com>
* RenderThread: use AbstractRenderer* instead of Renderer*Paul Lemire2018-03-194-9/+8
| | | | | | | | | So that we can reuse the RenderThread class with different types of renderers. Change-Id: I797b599d64f5c846b8e2ae95eba2394033a1e4b0 Task-number: QTBUG-61151 Reviewed-by: Mike Krus <mike.krus@kdab.com>
* Move Renderer specific classes into new folderPaul Lemire2018-03-1979-188/+128
| | | | | | | | This is another step toward isolating the renderer from the render aspect Change-Id: I4031675b961d6645b65bbe05cf62d150993038b0 Task-number: QTBUG-61151 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* configure: Auto-detect that AVX2 is enabledOswald Buddenhagen2018-03-181-1/+1
| | | | | | | | | | | If the user has an mkspec that turns AVX2 on (i.e., -march=haswell or similar option added to QMAKE_CXXFLAGS), the compiler will be using AVX2 for normal code generation. In this case, we should enable our AVX2-optimized code as well. Started-by: Thiago Macieira <thiago.macieira@intel.com> Change-Id: I940917d6763842499b18fffd15134b004028c6ae Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Render: Add configure option for the OpenGL rendererPaul Lemire2018-03-163-0/+33
| | | | | | | | | This is the first step in making the QRenderAspect more modular and not dependent on a single renderer forever. Change-Id: I27cecdcfda382859343f1b51fbe730bb998258fb Task-number: QTBUG-61151 Reviewed-by: Mike Krus <mike.krus@kdab.com>
* Perform Shader loading within framePaul Lemire2018-03-1611-63/+307
| | | | | | | | | | | | | | | - CommandThread has been improved to not use an exec loop and properly instantiate its own GL context + GraphicsContext that is bound to an offscreen surface - The dirtyShaderGathering job has been renamed and now performs the loading of shaders and their introspection. It is also run before the materiaparameter gathering, so that these jobs and the following can assume a shader is ready Change-Id: I6d99b3a104bd96530dc45f4b05d3aaac09d2d077 Reviewed-by: Mike Krus <mike.krus@kdab.com> Reviewed-by: Svenn-Arne Dragly <svenn-arne.dragly@qt.io> Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Split GraphicsContext in twoPaul Lemire2018-03-1617-1379/+1631
| | | | | | | | | - GraphicsContext is now a stateless wrapper around GL calls - SubmissionContext is a GraphicsContext + caches and states used to render a frame Change-Id: I147b56dfd4c403911faadc0e9821fff9a892f71c Reviewed-by: Mike Krus <mike.krus@kdab.com>
* Renderer: instantiate, initialize and shutdown CommandThreadPaul Lemire2018-03-164-0/+28
| | | | | | | Change-Id: I89a3ee4b6d72565c1be91244c1bde39f1dd7101b Reviewed-by: Mike Krus <mike.krus@kdab.com> Reviewed-by: Svenn-Arne Dragly <svenn-arne.dragly@qt.io> Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Notify node dirty on texture downloadMike Krus2018-03-161-2/+2
| | | | | Change-Id: Ia04f278ef474d39aaa7c2ba516c83ed6227e660d Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Notify texture status changedMike Krus2018-03-162-2/+9
| | | | | Change-Id: Id8ef731d5f80648c19221c1d1b334bd8367188c3 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Document state of the Qt 3D modulesKai Koehne2018-03-129-12/+44
| | | | | | | | | | | | | Do make it explicit which ones are still in development also in the landing page, and add \preliminary and \since tags (for released and TP modules, respectively). Note that the \preliminary, \since tags currently do not work for \qmlmodule, which hopefully gets fixed at one point: QTBUG-65963. Change-Id: I6648311c38f331286be37eefa60794984cd239b7 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
* Fix compile warningMike Krus2018-03-101-4/+4
| | | | | | | signed/unsigned comparison Change-Id: Ic5bb10313cdc1c108df68017146dbab876b4d706 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* visitorutils_p.h: add proper header guardv5.11.0-beta2Paul Lemire2018-03-091-3/+3
| | | | | Change-Id: If994bef73fc10348bb0364f11a267856428907a5 Reviewed-by: Mike Krus <mike.krus@kdab.com>
* Enable alpha blending on QTextureMaterialMike Krus2018-03-084-0/+63
| | | | | Change-Id: I8466ccd47f8bda9fec184f548a2df7807d456ac7 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>