aboutsummaryrefslogtreecommitdiffstats
path: root/tests/manual
Commit message (Collapse)AuthorAgeFilesLines
* Merge remote-tracking branch 'origin/5.8' into devLiang Qi2016-11-232-0/+28
|\ | | | | | | | | | | | | Conflicts: src/qml/jsruntime/qv4object_p.h Change-Id: Iff4d3aba7710a999b8befdc493cbe959e1ce02f9
| * Fix flow text objects in beginning of RTL blockEskil Abrahamsen Blomfeldt2016-11-142-0/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | If the block is right-to-left and starts with a text object, it should be aligned to the right edge of the QTextLine instead of the left one. [ChangeLog][QtQuick][Text] Fixed placement of flowing text objects in the start of a right-to-left block. Task-number: QTBUG-43133 Change-Id: Id790e88f3464280f124c38b4260386b84cac8826 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | Add ECMAScript 6 Array find and findIndex methodsKai Uwe Broulik2016-11-101-1/+2
|/ | | | | Change-Id: I318fa243ab68b8a714923ab816d62e8c544fca8c Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Merge remote-tracking branch 'origin/5.7' into 5.8v5.8.0-beta1Liang Qi2016-10-271-0/+18
|\ | | | | | | | | | | | | Conflicts: tests/auto/quick/qquicktextedit/BLACKLIST Change-Id: I0b9e5bea5da5d2666887c202e62d889b4aa56900
| * Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-10-271-0/+18
| |\ | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/quick/items/qquickwindow.cpp tests/auto/quick/qquicktext/BLACKLIST tests/auto/quick/qquicktextedit/BLACKLIST Change-Id: I8bd68b0b5e853b7908791d2cbddd18dd527c76ae
| | * Add a test for bitmap font rendering in Qt QuickEskil Abrahamsen Blomfeldt2016-10-251-0/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The "fixedsys" font is available on Windows at least, so while this test may not add any value on other platforms, it won't hurt either, and this was something that regressed on Windows before. Task-number: QTBUG-56659 Change-Id: Id01dedcbdc2fe74027caf31dd0dde6729ade8c63 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* | | manual tests: replace 'foreach' with 'range for'Anton Kudryavtsev2016-08-203-9/+12
| | | | | | | | | | | | | | | Change-Id: I21d17b7770246888b1de71d54a6a1babd0726b8a Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* | | Merge remote-tracking branch 'origin/5.7' into devEdward Welbourne2016-08-022-1/+1
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/quick/items/qquickshadereffect.cpp 5.7 had a bug-fix in code dev has replaced wholesale. src/quick/items/qquickwindow.cpp src/quick/items/qquickwindow_p.h One side changed a method's signature; the other side renamed a method declared adjacent to it and changed some code using it, moving some from the public class to its private partner. tests/auto/qml/debugger/qqmlprofilerservice/tst_qqmlprofilerservice.cpp One side added a blank line before a comment the other re-wrote. Kept the re-write, killed the stray blank. .qmake.conf Ignore 5.7's change to MODULE_VERSION. src/qml/compiler/qqmltypecompiler.cpp src/qml/compiler/qqmlpropertyvalidator.cpp 5.7 changed code in the former that dev moved to the latter. Reflect 5.7's changes there, adapted to dev's form. src/qml/qml/qqmlobjectcreator.cpp One side added new QVariant types; the other changed how it handled each type of QVariant (without git seeing any conflict); adapted the new stanzas to work the same as the transformed ones. tests/manual/v4/test262 dev had a broken sha1 for it; so used 5.7's 9741ac4655808ac46c127e3d1d8ba3d27ada618e Change-Id: I1fbe2255b97d6ef405cdd1d0cea7fab8dc351d6f
| * | Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-08-011-1/+1
| |\| | | | | | | | | | | | | | | | | | | | | | Conflicts: tests/auto/qml/qqmllanguage/tst_qqmllanguage.cpp tests/auto/quick/qquickitem/tst_qquickitem.cpp Change-Id: If261f8eea84dfa5944bb55de999d1f70aba528fd
| | * MSVC: Make Lancelot's scenegrabber compileEskil Abrahamsen Blomfeldt2016-07-281-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The extern declaration needs Q_CORE_EXPORT (which resolves to an import declaration on MSVC). Also, the type of the qt_qhash_seed variable is a QBasicAtomicInt, not int, so with proper signature mangling it would not resolve (since memory layout is the same for an int and a QBasicAtomicInt, it would just work for linkers that did not detect it.) Change-Id: I92375afcfc13e045e78a4d6cfdd539bd01b66136 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* | | D3D12: Support runtime threaded shader compilationLaszlo Agocs2016-06-221-2/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Let's revise our policy of offline/bytecode only shaders. ShaderEffect benefits greatly from having runtime compilation support for HLSL source strings, especially when dynamically constructing shader strings. There is no reason not to support both approaches since we rely on d3dcompiler for reflection anyhow. What's more, we can call D3DCompile on a dedicated thread, keeping the gui responsive while compilation is on-going. Change-Id: Ie6c02c2aa0ebd0c8371bbf30b3ce6582128c457b Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* | | Merge remote-tracking branch 'origin/5.7' into devLiang Qi2016-06-211-1/+1
|\| | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/quick/items/qquickflickable_p_p.h src/quick/items/qquickpathview_p_p.h tests/auto/qml/qqmltypeloader/tst_qqmltypeloader.cpp Change-Id: I77664a095d8a203e07a021c9d5953e02b8b99a1e
| * | Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-06-201-1/+1
| |\| | | | | | | | | | | | | | | | | | | | | | Conflicts: src/qml/jit/qv4targetplatform_p.h src/quick/accessible/qaccessiblequickitem_p.h Change-Id: Ic95075a5fad81ec997a61561bd65979dfa3b9d4d
| | * highdpi manual test: include <QDebug> not qDebug.hShawn Rutledge2016-06-161-1/+1
| | | | | | | | | | | | | | | Change-Id: I24b3ccd23fdb42d44978debeeec96bac179edba6 Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
* | | One GraphicsInfo to rule them allLaszlo Agocs2016-06-011-9/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | Rename RendererInfo to GraphicsInfo. Deprecate OpenGLInfo and move the surface format properties into GraphicsInfo. Move also the shader info properties from ShaderEffect. Change-Id: I3b3f01080e059b3a30a132fd67de19a4bfca54ef Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* | | D3D12 manual test: add an async, uncached image loading testLaszlo Agocs2016-05-315-2/+79
| | | | | | | | | | | | | | | Change-Id: I8901a67d9e2b3343ba3f57775f1849400f6cdf18 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* | | Merge remote-tracking branch 'origin/dev' into scenegraphngAndy Nichols2016-05-311-0/+0
|\ \ \ | | | | | | | | | | | | Change-Id: I35715e07b6f837f21cd8e8898f19d97af92c6b69
| * | | V4: Get more code inlined in the MemoryManager.Erik Verbruggen2016-05-251-0/+0
| |/ / | | | | | | | | | | | | | | | Change-Id: I7cf6c5d3458b0c43283e63a7300ee9965ba803fb Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com> Reviewed-by: Frank Meerkoetter <frank.meerkoetter@basyskom.com>
* | | Merge remote-tracking branch 'origin/dev' into HEADLaszlo Agocs2016-05-243-15/+9
|\| | | | | | | | | | | Change-Id: If91e0e28d004f1db978dcab393f189743bb69cd5
| * | Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-05-193-15/+9
| |\| | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/plugins/qmltooling/qmldbg_profiler/qqmlprofilerservice.cpp src/qml/jsruntime/qv4engine.cpp src/qml/jsruntime/qv4engine_p.h Change-Id: I89ffccd699bee675732758d039e22224b275d60d
| | * make use of COPIESOswald Buddenhagen2016-05-133-15/+9
| | | | | | | | | | | | | | | Change-Id: I479c9523a89be1d64364e8205daa5860e16882cc Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* | | Merge remote-tracking branch 'origin/dev' into wip/scenegraphngLaszlo Agocs2016-05-246-8/+27
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/quick/items/qquickopenglshadereffectnode.cpp src/quick/items/qquickshadereffect.cpp src/quick/scenegraph/coreapi/qsgbatchrenderer_p.h src/quick/scenegraph/qsgdefaultglyphnode_p.h Change-Id: I3d6874b4e4231a89d2836c04fe8e7f2ef2d698c4
| * | Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-04-276-8/+27
| |\| | | | | | | | | | | | | | | | | | | | | | Conflicts: src/quick/items/qquickimagebase.cpp src/imports/layouts/plugin.cpp Change-Id: I5f48474df4034a1347ec74795c85d369a55b6b21
| | * Add another test for broken selectionsEskil Abrahamsen Blomfeldt2016-04-111-0/+22
| | | | | | | | | | | | | | | | | | | | | | | | This test is for 24914b1acbfc5e45768dd1465b9e3f3e61185829 in qtbase. Task-number: QTBUG-51759 Change-Id: I59081ec5268359f25c492f0536f985793e08e250 Reviewed-by: aavit <eirik.aavitsland@theqtcompany.com>
| | * Instantiate static Qml plugins declaring QQmlExtensionInterface onlySebastian Lösch2016-04-115-8/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When instantiating static plugins no check is done whether the QQmlExtensionInterface is declared. Therefore all user plugins are instantiated in the Qml thread, which may cause problems. Task-number: QTBUG-52012 Change-Id: Ia91ec5ec7b2a9721bd11e3648cdc161855b4454e Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* | | D3D12: Implement grabWindowLaszlo Agocs2016-05-062-1/+15
| | | | | | | | | | | | | | | Change-Id: Icb8151f26bad68795eb2e1f920297267c880b40b Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* | | D3D12: Painter nodeLaszlo Agocs2016-05-035-1/+193
| | | | | | | | | | | | | | | | | | | | | | | | | | | Only supports QImage backing. As a bonus add some notes to the Context2D docs too. Change-Id: I18457a1f766d2f136c6864ec06fe596668d5e726 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* | | D3D12: Fix 'ShaderEffect in a ShaderEffectSource as property value'Laszlo Agocs2016-04-299-15/+155
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Import (and clean up) the dropshadow from the shadereffects example. This is very useful since it tests a lot more paths and cases than the wobble. To overcome the issue of not having some of functionality available before the item is added to a window, make QQuickGenericShaderEffect smarter and enhance the documentation. The handling of vertical mirroring is revised. The GLSL and HLSL version of the dropshadow shaders produce correct, identical output now. Change-Id: I94800997bfba781140d80720eb6f340cda480747 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* | | Adaptable shader effect enablersLaszlo Agocs2016-04-299-1/+135
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The D3D12 node implementation is mostly missing. The rest of the enablers should be in place now however. Importing QtQuick 2.8 provides new properties for ShaderEffect: - shaderType can be used to decide which language should be used - shaderCompilationType tells if compilation is runtime or offline - shaderSourceType tells if the vertex/fragmentShader properties refer to source strings or source files or pre-compiled bytecode files The last two are bitmasks. In practice however we will support only one approach per backend for now (runtime + source string for OpenGL, offline + bytecode for D3D12). In addition to QSGShaderEffectNode, introduce the QSGGuiThreadShaderEffectManager interface. This provides the gui thread bits for the above and performs shader reflection. Backends that use the new ShaderEffect system must provide both. For each ShaderEffect item there will be a manager (on the gui thread) and a node (on the render thread). Reflection is expected to be done via standard helper libs (d3d12shader + D3DReflect from d3dcompiler for the D3D12 backend), or via manually inspecting SPIR-V, or parsing the source (like the GL path does now), or by using some 3rd party library (not recommended). In any case we require that reflection is doable on the gui thread without dependencies to the actual graphics API. The ShaderEffect documentation is greatly extended, covering HLSL and the new properties. The test app uses manually compiled shaders on its HLSL path for now. This is because there is no story yet for build system integration for public use (the internal HLSL -> bytecode in C header rule is only suitable for the d3d12 plugin itself, apps need something different). Change-Id: Id112104906fbcb26b9902a35f19d8d509b340d1b Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* | | Merge remote-tracking branch 'origin/dev' into wip/scenegraphngLaszlo Agocs2016-04-1311-0/+0
|\| | | | | | | | | | | Change-Id: If33197b616de3476811f0161d4ecd8e7d004756c
| * | Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-04-0811-0/+0
| |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change also fixes the build of two benchmarks, tst_affectors and tst_emission. Conflicts: src/plugins/qmltooling/qmldbg_native/qmldbg_native.pro src/qml/qml/ftw/qhashfield_p.h tests/benchmarks/particles/affectors/tst_affectors.cpp tests/benchmarks/particles/emission/tst_emission.cpp tests/benchmarks/qml/pointers/pointers.pro tests/benchmarks/qml/pointers/tst_pointers.cpp tests/benchmarks/qml/qmltime/qmltime.pro tests/benchmarks/qml/qquickwindow/qquickwindow.pro Change-Id: I595309d1e183c18371cb9b07af6e4681059de3b2
| | * Purge sRGB chunks from PNG in tests.Edward Welbourne2016-03-2911-0/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Subjects each *.png file that matched grep -law "sRGB" to: pngcrush -ow -brute -rem allb -reduce Various tools grumble about sRGB tables in PNG images; and our handling of them doesn't pay attention to these, so purging them makes the images smaller with no loss to the images. Change-Id: I9e4dc3aec97cd32bc8ac216fadeaf7669c49647c Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
* | | D3D12: Add support for layersLaszlo Agocs2016-04-115-1/+112
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Recursive and multisample support is left as a future exercise. Mipmapping is not supported and is not planned for the time being. Layers cannot currently be rendered on their own, although they have their own independent render targets. Starting a layer just starts the next frame early, putting all commands to the normal command list of that frame. Thus this is not yet fully suitable for implementing grabs. Buffer handling is revised to support multiple vertex, index or constant buffers. This is essential since we are going to have multiple renderer instances (and may also be needed for a more complex batching renderer in the future) QSGBasicImageNode::preprocess is changed not to regenerate the geometry on every dynamic texture change. In most cases only the material needs to be dirtied. Rebuilding the geometry is only necessary when the normalized subrect or similar changes. Change-Id: Id088c15d1b75022b54c1f8bff1656d2cd68fa7cc Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
* | | D3D12: Support msaa on the default render targetLaszlo Agocs2016-04-061-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | Pick up window->format().samples() and use it. There is nothing that does resolving and extra buffer management for us, do it all manually. Change-Id: I76206574a24dfdd17120433e924a9841c9854904 Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
* | | D3D12: Fix Animators with non-GL backendsLaszlo Agocs2016-04-066-1/+204
| | | | | | | | | | | | | | | | | | | | | Add a test for render thread Animators. Change-Id: Iddb11f734ccec00d76ca99cd8349cbb65750e784 Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
* | | D3D12: Support styled and outlined textLaszlo Agocs2016-03-221-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The texture resizing highlighted a potential issue with deferred deletes and texture releases: All the texture management functions are special in the sense that they can be called outside a begin-endFrame. (this is what glyph caches do in fact when resizing is involved) In this case using currentPFrameIndex (referring to the last frame's pframeData slot) seems safe, but using it is in fact incorrect under some scenarios: a resource queued for releasing between frame 1 and 2 cannot be released in beginFrame of frame 3, which was the case until now. The CPU wait in frame 3's beginFrame only guarantees the commands submitted before frame 1's endFrame have completed, and those will not include a wait for the copy queue's commands that are added between frames 1 and 2. Using the next frame's pframeData is not an option either since that would lead to an immediate release once beginFrame is called the next time. Therefore, introduce an out-of-frame queue for deleting and texture slot reuse. With the previous example the release will be done in frame 4, which is safe since everything submitted in frame 2 - which will normally include a wait for the copy queue if there were commands issued there before frame 2 using the to-be-released texture - are guaranteed to be done due to the CPU wait. Change-Id: Iaa3b5f0af991946dc97ba44448823b22cbf419dc Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
* | | D3D12: Complete non-styled text supportLaszlo Agocs2016-03-181-1/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Support for ARGB and A8 font engine formats is now available. We once again need changes to the texture upload logic: we now allow calling queueTextureUpload() for the same texture before the uploads initiated by the previous call have finished. For mipmapped textures the limitation remains in place. The texture glyph caches are non-mipmapped and can have multiple begin-endFillTexture sequences within one frame. Texture and thus glyph caches are now resizable, using the copy queue to copy the old contents. Change-Id: Ib81e0230b3a45a4948853497f7dbf236617fcd25 Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
* | | D3D12: Text enablersLaszlo Agocs2016-03-176-2/+75
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Enablers for native text rendering. Distance field support is postponed for the time being. The main feature here is the revised texture handling where it is now possible to schedule the update of multiple sub-regions from a list of QImages. BGRA is now used where appropriate, meaning for example that RGB32 needs no QImage conversion anymore. The skeletons of the glyph nodes, the basic text material and the glyph cache are added as well. Also fixes cleanup when closing the window by properly reimplementing invalidate() in the rendercontext. The default rectangle, image and glyph nodes are refactored a bit once again: QSGBasicSomethingNode is now the common (albeit optional), abstract class, living in its own file, whereas QSGDefaultSomethingNode is the GL-specific one, like before. This prepares the future renaming for QSGDefault -> QSGOpenGL. Change-Id: I6dbb4ece10be39fd214bb64082d79607389e3e6e Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
* | | D3D12: Add mipmaps and smooth texture materialLaszlo Agocs2016-03-151-1/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The smooth material is requested by antialiasing: true. This is not the same as setting smooth: true which changes the filtering. Mipmap support is only available for power-of-two textures for now. Others will get scaled. In addition, texture releases are now properly deferred and unnecessary Wait() calls are avoided. Change-Id: Ib9d909b1c4e2158564ab8bcfb933c088cf0da239 Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
* | | Merge remote-tracking branch 'origin/dev' into wip/scenegraphngLaszlo Agocs2016-03-081-0/+22
|\| | | | | | | | | | | Change-Id: I05f4e29dd3435bb843f9b2250574a61d688d5992
| * | Merge remote-tracking branch 'origin/5.6' into devLiang Qi2016-02-121-0/+22
| |\| | | | | | | | | | | | | | | | | | | Conflicts: .qmake.conf Change-Id: I356ec83cf687bd2833f9a7c5e820d56b1efa8979
| | * Lancelot: Add test for mixing breaks and wraps in selectionsEskil Abrahamsen Blomfeldt2016-02-051-0/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | This is a test for QTBUG-49596. It's separate from the fix, because the fix is in Qt Gui. Task-number: QTBUG-49596 Change-Id: Ic035e58b477422dcb137e528381d9b70d6542215 Reviewed-by: aavit <eirik.aavitsland@theqtcompany.com>
* | | D3D12: Add missing test assetLaszlo Agocs2016-03-071-0/+0
| | | | | | | | | | | | | | | | | | | | | | | | Previous commit forgot to include the image used for the second Image element. Change-Id: I9b57c3cf33341e0ca09753e438e9fd50be9d3117 Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
* | | D3D12: Basic image supportLaszlo Agocs2016-03-076-1/+68
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For now there is no mipmapping, no atlases, and all image data is converted to RGBA8888. Regardless, this already makes it possible to use basic Image elements. Follow the same pattern as with rectangles: most of the code is shared via a material-less, abstract QSGDefaultNoMaterialImageNode, with the material-related bits provided by QSGDefaultImageNode for GL and QSGD3D12ImageNode for D3D. Also fixes the harmless but incorrect miscalculation of the VBV size for indexed draws. Image data is copied into an intermediate upload buffer when invoking the render context's createTexture(). The upload is triggered on a separate copy command queue. The main command queue is synchronized via a fence before executing the commands for the current frame. Root signatures are now cached more cleverly and include zero or more SRVs as parameter 1. This involves the engine having to manage a shader (GPU) visible CBV-SRV-UAV descriptor heap as well. Change-Id: I67c35577ff2677e1c7776dd8e5011860e2d78b00 Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
* | | D3D12: Revamp logging and add a heavier rectangle testLaszlo Agocs2016-03-044-0/+254
| | | | | | | | | | | | | | | | | | | | | | | | Now we can do performance tests since there is no debug output unless requested via QSG_RENDERER_DEBUG. Change-Id: I15ff213f35816401cc113899211b52a98ec30989 Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
* | | D3D12: Let there be smoothnessLaszlo Agocs2016-03-041-0/+11
| | | | | | | | | | | | | | | | | | | | | Rounded rectangles are now smooth and beautiful. Change-Id: I3ea61934be7c10ef01fa5c2b14dc28705a429b61 Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
* | | D3D12: Add support for clipping via scissor and stencilLaszlo Agocs2016-03-045-61/+141
| | | | | | | | | | | | | | | Change-Id: Ie55b9a2fd39d9e11321454a34a21c2a52ff1d23a Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
* | | D3D12: add opacity support, fix buffer handling and dirty trackingLaszlo Agocs2016-03-041-0/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Avoid using .h for generated headers with shader blobs in order not to confuse syncqt. All buffer Map and memcpy is now done only at the end of the frame. This is relevant for the constant buffer which can this way Map once and memcpy only the data for elements that changed something. This also marks a change from how simplerenderer works: instead of having per-program matrix, opacity, etc. values (uniforms), there is a separate copy of these in a dedicated area of the constant buffer for each element. This allows reusing the data in the buffer as-is for non-changing elements at the cost of higher memory usage (256 bytes per element both on CPU & GPU side at minimum) and is also necessary in order to be able to build command lists with multiple draw calls without intra-dependencies for the cbuffer contents. The somewhat broken dirty tracking of simplerenderer (matrices always treated as dirty, forgetting the root node for ever in the list of dirty transform nodes, etc.) is now corrected so that the DirtyMatrix and DirtyOpacity states reflect reality, meaning the cbuffer update can be skipped completely for items whose transform or inherited opacity has not changed at all. Format mapping is now moved to the engine. Change-Id: Ia0a0d73e2a954970cb2745deb1a62c09f3d3cb7c Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
* | | Add the skeleton for a D3D12 backendLaszlo Agocs2016-02-194-0/+156
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Proof of concept. The plan is to proceed slowly with supporting node types one by one, starting with QSGRectangleNode. Opaque rectangles work already, but only non-smooth for now. The renderer is incomplete (no clip/opacity) and is based on simplerenderer on scenegraph playground. Buffer handling is not necessarily optimal yet. Use QT_QUICK_BACKEND=d3d12 to request this backend. Set QT_D3D_DEBUG=1 to enable the D3D debug layer. The render loop handles everything, incl. swap chain setup, handling resizes, etc. This being D3D, there are no further enablers needed from the QtGui or platform plugin side. By default the first hardware adapter is picked. In the absence of that, WARP is tried. The list of adapters is printed at startup, use QT_D3D_ADAPTER_INDEX to force a given card in case there are multiple ones in the system. The goal is not to productize a fast and great renderer, but to pave the way to better future backends for D3D12 and similar graphics APIs. Compiling in the support into Qt Quick is bad since the dependency onto d3d12.dll is not necessarily acceptable, but it's good enough for now, this being a wip branch. Change-Id: Ifbe088e7507223328096b22eec2c73f77bb5680e Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
* | Remove insignificant flag from scenegraph testTony Sarajärvi2016-01-271-1/+1
| | | | | | | | | | | | Change-Id: Ied9ec851a8a3eee6b0bea0433e79d06e1cc2d15e Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com> Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>