- Nov 07, 2017
-
-
Lars Knoll authored
Rework the way the QResourceManager allocates and manages it's resources. Get rid of the huge pre-allocated freelist, and instead merge it with the counter field (that is now always a quintptr large). Give QHandle a direct pointer to it's data in addition to the counter. This makes QHandle 8 or 16 bytes large, but speeds up access to it's data and gives more safety on the counter as that one now always has at least 31 bits. Counter and the linked freelist use the same memory location. To avoid potential conflicts, make sure the counter is always an odd number, so it can't be a valid pointer. Do not use INDEXBITS anymore, the resource manager can now always allocate as many resources as we have RAM available and will grow with the required use (and not allocate fixed memory upfront). This change reduces the memory consumption of the qardboard example from a bit above 40 to 10MB. Change-Id: I514f2d3f957f8635098fb88342e42e3361456340 Reviewed-by:Sean Harmer <sean.harmer@kdab.com>
-
Kevin Ottens authored
We ended up having corrupted meshes if the application which exported the OBJ was adding trailing white spaces. Also make sure we got a test case using crlf for end of lines. Change-Id: Iace9dbc3d0d124fefe9e3350d396fdf26555cd17 Reviewed-by:Sean Harmer <sean.harmer@kdab.com>
-
- Oct 20, 2017
-
-
Laszlo Agocs authored
Change-Id: Ib06d84088d93e00ffdcaa6baa9d34e03358943cb Reviewed-by:
Svenn-Arne Dragly <svenn-arne.dragly@qt.io> Reviewed-by:
Andy Nichols <andy.nichols@qt.io>
-
Nico Vertriest authored
qanimationclip.h:56: warning: No documentation for Qt3DAnimation::QAnimationClip::clipData Change-Id: Ic44c96d47d3dff095b6b299f5280f21345dba452 Reviewed-by:
Venugopal Shivashankar <Venugopal.Shivashankar@qt.io> Reviewed-by:
Laszlo Agocs <laszlo.agocs@qt.io>
-
Nico Vertriest authored
qtexturewrapmode.h:60: warning: No documentation for 'Qt3DRender::QTextureWrapMode::WrapMode' qtexturewrapmode.h:55: warning: No documentation for 'Qt3DRender::QTextureWrapMode::x' qtexturewrapmode.h:56: warning: No documentation for 'Qt3DRender::QTextureWrapMode::y' qtexturewrapmode.h:57: warning: No documentation for 'Qt3DRender::QTextureWrapMode::z' qtexturegenerator.h:59: warning: No documentation for 'Qt3DRender::QTextureGenerator::operator()() qtexturegenerator.h:60: warning: No documentation for 'Qt3DRender::QTextureGenerator::operator==(const QTextureGenerator &other) qtexturewrapmode.h:60: warning: No documentation for 'Qt3DRender::QTextureWrapMode::WrapMode' Change-Id: I6a77f43dfb153de142d12ef1c3cdb1850669d49f Reviewed-by:
Venugopal Shivashankar <Venugopal.Shivashankar@qt.io> Reviewed-by:
Laszlo Agocs <laszlo.agocs@qt.io>
-
Nico Vertriest authored
Change-Id: I342a74f6605d7e6a9ac6f07af21dc8f7fd80c3ce Reviewed-by:
Venugopal Shivashankar <Venugopal.Shivashankar@qt.io> Reviewed-by:
Laszlo Agocs <laszlo.agocs@qt.io>
-
Tony Sarajärvi authored
After a fix for a crash, this test now FAILs, which requires blacklisting until it is fixed Task-number: QTBUG-63639 Change-Id: I918600f36053a5a3e1adb31da4f1d4ec3303b8b0 Reviewed-by:Friedemann Kleint <Friedemann.Kleint@qt.io>
-
- Oct 19, 2017
-
-
Tony Sarajärvi authored
After a fix for a crash, this test now FAILs, which requires blacklisting until it is fixed Task-number: QTBUG-63639 Change-Id: I10ce9b6b80aa5adf83f2113be7c6b2007463b73e Reviewed-by:
Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by:
Laszlo Agocs <laszlo.agocs@qt.io>
-
- Oct 18, 2017
-
-
Friedemann Kleint authored
Add a few pointer checks. This allows for the test to be blacklisted instead of marked as insignificant. Task-number: QTBUG-63639 Change-Id: Ide9216226d880909a600c3becc0d6ca7259e5a69 Reviewed-by:
Tony Sarajärvi <tony.sarajarvi@qt.io> Reviewed-by:
Laszlo Agocs <laszlo.agocs@qt.io>
-
- Oct 13, 2017
-
-
Kai Koehne authored
Use new version with commercial exception. Change-Id: I09809579db277135edce1c6c1938ac3915600e11 Reviewed-by:Laszlo Agocs <laszlo.agocs@qt.io>
-
- Oct 09, 2017
-
-
Harald Vistnes authored
Texture data from generators may not be available in the current frame and the next frame should be rendered immediately, even in OnDemand rendering. The problem was that this information was not propagated back to the renderer, it was just silently ignored inside GraphicsContext::setParameters. Added a bool return type to GraphicsContext::setParameters so that the renderer could check for errors. Task-number: QTBUG-63561 Task-number: QTBUG-59752 Change-Id: I18fb6f8236bf47d3eeab07d879dffaa599665e6b Reviewed-by:Paul Lemire <paul.lemire@kdab.com>
-
- Oct 06, 2017
-
-
Liang Qi authored
Change-Id: I8d6bb938f7ad06fa97898f4242af76cb48efbfc5
-
Oswald Buddenhagen authored
Change-Id: Ib54e714e9152ac669441d0067ceb27f5b29ca436
-
Paul Lemire authored
All buffers are uploaded to GPU before the frame submission takes place. If during frame submission we check for a CPU buffer whether it's dirty, we end up (rightfully) with a race condition as we are preparing for frame n+1 already. There must have been a left over when the above changes were made as the UBO/SSBO code paths would, during rendering, check whether a CPU buffer was dirty, and if so try to upload, causing a race. Removed these code paths which aren't needed. Change-Id: I713a92b881335ecfb30f24bd7485a7bac29be4b7 Reviewed-by:Sean Harmer <sean.harmer@kdab.com>
-
- Oct 05, 2017
-
-
Sean Harmer authored
This now correctly handles both the old ChannelMapping and the new SkeletonMapping use cases. There was some ambiguity about which way around the indices were being generated. It worked in previous cases for the limited data available to test with. This has been tested to work with both the JSON animation format and skeletal animations loaded from JSON and glTF 2 files. Change-Id: Ie8558c764cd8dc57d6cdad19bbc6a66052bc68d0 Reviewed-by:Paul Lemire <paul.lemire@kdab.com>
-
Sean Harmer authored
Change-Id: I4a9044933b182a2e0eba745483f1b8bc214dcdba Reviewed-by:Paul Lemire <paul.lemire@kdab.com>
-
- Oct 03, 2017
-
-
Sean Harmer authored
This only loads the shader source once instead of 1000 times. Reduces the time to first frame by a further 30% by massively reducing the work the main thread has to do at startup. The Qt3DExtras material classes are convenient but lead to bad practices like this. We should provide a way to allow them to share the effect easily but still use the provided materials for their API. Perhaps a new ctor overload that takes a QEffect pointer would work nicely. Also fixed some float vs double vs int precision warnings as a drive by. Change-Id: I181de8d95841eb88c91c29ef6f45d215da079b98 Reviewed-by:Paul Lemire <paul.lemire@kdab.com>
-
Sean Harmer authored
No point loading the same data 1k times. Shaves 35% off the time from application start to first frame being complete. Change-Id: I8cd7c8a5aa377c0663c03e35d7a4c03f50b052f6 Reviewed-by:Paul Lemire <paul.lemire@kdab.com>
-
Sean Harmer authored
Fixes clang warning. Change-Id: I1831bd112c33cdd1fe9cc7ae169cfba05cb8a694 Reviewed-by:Paul Lemire <paul.lemire@kdab.com>
-
Sean Harmer authored
The backend doesn't need to know about the rotation angles used to update the transform. Saves about 3% of time on the main thread related to mallocing the property change notifications. Change-Id: I784baf705cdd697ba860dc7a0c2e0e1c9ee467ec Reviewed-by:Paul Lemire <paul.lemire@kdab.com>
-
- Sep 29, 2017
-
-
Sean Harmer authored
Everything goes through the other overload now. Change-Id: Id0c196a6967a9f83e47092ca1fc7f4ab4ebe9309 Reviewed-by:Sérgio Martins <sergio.martins@kdab.com>
-
Sean Harmer authored
Will make it possible to reduce the amount of code to maintain and test. There are still several ways to optimize this too so best to only do it for one code path that all animators use. Change-Id: I05ebd4f41d88aa0bea37d4d17130bc79c96ebd5c Reviewed-by:Sérgio Martins <sergio.martins@kdab.com>
-
Sean Harmer authored
Should pass before and after the refactoring. Change-Id: I9ef8f948f03a131546fc6485e9c66494ff383714 Reviewed-by:Sean Harmer <sean.harmer@kdab.com>
-
- Sep 28, 2017
-
-
Antti Kokko authored
Change-Id: I87e8292ee606af33f729e2b492a616325a49c89a Reviewed-by:Sean Harmer <sean.harmer@kdab.com>
-
Svenn-Arne Dragly authored
The timer is parented to the QMouseHandler (introduced in 595b4add ) and was therefore deleted both by the parent and by the QScopedPointer, leading to crash on exit. This commit removes the QScopedPointer and uses a raw pointer instead. Task-number: QTBUG-63462 Change-Id: I6b031caf7cb69ccbde74995661f4ce8c73f21d88 Reviewed-by:
Sean Harmer <sean.harmer@kdab.com>
-
- Sep 27, 2017
-
-
Sean Harmer authored
Caches the resolution of node ids to ChannelMappings. Updated test to check this new feature. Change-Id: I0c2f539c2bd91e7918b98c5b60c9ca486b63ec08 Reviewed-by:Kevin Ottens <kevin.ottens@kdab.com>
-
Sean Harmer authored
Change-Id: I9015546607b5663f1feada64bc03cb73d3538ef2 Reviewed-by:Kevin Ottens <kevin.ottens@kdab.com>
-
- Sep 26, 2017
-
-
Sean Harmer authored
Rather than assuming they are in order. The blended clip animator code path now behaves the same as the simple QClipAnimator in that it can handle clips with channel components not in the expected order. We can now look at making both share a common code path. Change-Id: I61848e07b4f418ba9f4c56f56f4f49c9a5fbd588 Reviewed-by:Kevin Ottens <kevin.ottens@kdab.com>
-
Sean Harmer authored
Change-Id: I5a86547ae669394c290b30427f98821bc7552a63 Reviewed-by:Kevin Ottens <kevin.ottens@kdab.com>
-
Sean Harmer authored
This correctly handles the case where the blend tree consists of a single value node. Added test case to catch it. Change-Id: I8982d2081748866d163f107a4513bd2d17feb83a Reviewed-by:Kevin Ottens <kevin.ottens@kdab.com>
-
- Sep 24, 2017
-
-
Anders Hafreager authored
Copy externalRenderTargetSize and surfacePixelRatio from old to new surfaceSelector when setting activeFrameGraph on RenderSettings. Previously, when switching activeFrameGraph, surface was copied from old to new surfaceSelector, but these other properties were not. The rendered image was then stretched until window is resized again. Change-Id: I62b78da05c764f981813ab96b9a769bae7d786b2 Reviewed-by:Sean Harmer <sean.harmer@kdab.com>
-
- Sep 22, 2017
-
-
Wieland Hagen authored
For < 3 vertices, array accesses would fail, and face creation not make sense anyways Change-Id: I5eb746dfdec92d1c836e9870d87e7900530ec81c Reviewed-by:Sean Harmer <sean.harmer@kdab.com>
-
- Sep 15, 2017
-
-
Wieland Hagen authored
Or else we will continue uploading data indefinitely Change-Id: If81d8a0a790964c699462fbcb166808ee7859f59 Reviewed-by:Sean Harmer <sean.harmer@kdab.com>
-
- Sep 12, 2017
-
-
Mike Krus authored
Change order of local variables affecting the destructions order and making sure window outlives the surface selector Change-Id: Ia04f110656f4cc563643fb056ae491ffadf3a8b4 Reviewed-by:Sean Harmer <sean.harmer@kdab.com>
-
Mike Krus authored
In some cases, the list of pickable objects may contain entities that don’t have an object picker (or not parent has). Now filter the pick results to only keep entities which either have an object picker or are children of an entity that does. Added unit test which now passes Change-Id: I930c3d60cf2d19e845fe6c0de904c53b93ebe8be Reviewed-by:Kevin Ottens <kevin.ottens@kdab.com>
-
- Sep 11, 2017
-
-
Lars Knoll authored
We always use the same policy anyway. Change-Id: I3349b8c19ce0e6239b140dfac7ba66f8dda1b9be Reviewed-by:Sean Harmer <sean.harmer@kdab.com>
-
Lars Knoll authored
Instead, direclty use the Allocator to acquire and release handles without an additional indirection. This removes around 30% of the overhead in run(). Change-Id: Ic4a9343dd52a900eb1c7eb6b4135bc7670076df1 Reviewed-by:Sean Harmer <sean.harmer@kdab.com>
-
Lars Knoll authored
It's not used anywhere Change-Id: Id65ec9fc8e38697c0dbd23fe4f816e1637a22483 Reviewed-by:Sean Harmer <sean.harmer@kdab.com>
-
- Sep 09, 2017
-
-
Lars Knoll authored
This should be removeAll instead of remove(). Remove takes an integer (index into the array). It compiles by chance (but doesn't do the right thing), as QHandle has a cast operator to int. Change-Id: If8d59a535021bab3d2553f83bef7cf769c738dd6 Reviewed-by:Sean Harmer <sean.harmer@kdab.com>
-
- Sep 08, 2017
-
-
Wieland Hagen authored
The mutex right now is used for controlling access to the m_dirty flags, and for guarding access to m_gl and other data. We don't need to use it for accessing the flags, as an atomic int will do just fine and relieve us of potential deadlocks. The mutex must only guard changes to the actual data. Task-number: QTBUG-61130 Change-Id: Ia1f25af2233387f375c077965e901c67f972f1ec Reviewed-by:Sean Harmer <sean.harmer@kdab.com>
-