summaryrefslogtreecommitdiffstats
path: root/src/gui/vulkan/qvulkanwindow.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Handle maxImageCount 0 in QVulkanWindowLaszlo Agocs2021-01-041-3/+5
| | | | | | | | | Take the logic we use in QRhi's Vulkan backend. Pick-to: 6.0 5.15 Fixes: QTBUG-85791 Change-Id: Ifdc2b3d351af71fbc86e20abcede902303e41fc4 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* Doc: Fix documentation warnings for Qt GUITopi Reinio2020-08-281-7/+7
| | | | | | | | | | | | * Drop deprecation warnings for now-dropped items * Use the 'qt6' define and a new \nothing doc macro to conditionally document items on Qt 6 * Add a custom module header for docs that pulls in also Vulkan headers * Add \internal command for internal classes/functions * Move QtGUI-related code snippets from widgets to gui docs Change-Id: Ieb386b96631a49568d09059906d307c45c01d93a Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* Use QList instead of QVector in gui implementationJarek Kobus2020-07-071-12/+12
| | | | | | | Task-number: QTBUG-84469 Change-Id: I366e845249203d80d640355a7780ac2f91a762f1 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* QVulkanWindow: Fix setQueueCreateInfoModifier signatureLaszlo Agocs2020-03-101-1/+1
| | | | | | | ...per API review. Change-Id: I4a5a1cc895eac32f21f8a830507b841318509992 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* QVulkanWindow: Remove queueCreateInfoModifier getterLaszlo Agocs2020-03-031-13/+0
| | | | | | | | This is inconsistent with the other similar functions in QVulkanWindow, we do not provide getters for those either. Change-Id: If764b49f4b26ff14a2fa908b8d5b37429047250c Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* Add environment variables for customizing VulkanPaul Olav Tvete2020-01-061-0/+9
| | | | | | | | | | | | | | | | | QT_VULKAN_INSTANCE_EXTENSIONS to specify additional instance extensions. QT_VULKAN_INSTANCE_LAYERS to specify additional instance layers. QT_VULKAN_DEVICE_EXTENSIONS to specify additional device extensions. These will apply to all QVulkanWindows and everything that uses RHI, including Qt Quick with the Vulkan RHI backend. Task-number: QTBUG-80499 Change-Id: I912495affa987d62a9823d55d06d6a8209f6adc6 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Tidy nullptr usageAllan Sandfeld Jensen2019-12-061-1/+1
| | | | | | | | | | | Move away from using 0 as pointer literal. Done using clang-tidy. This is not complete as run-clang-tidy can't handle all of qtbase in one go. Change-Id: I1076a21f32aac0dab078af6f175f7508145eece0 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Vulkan: Add platform hooks before presentingJohan Klokkhammer Helsing2019-10-081-0/+4
| | | | | | | | | | This allows the Wayland plugin to circumvent the frame callback handling of the driver (which blocks until the frame is presented, potentially forever, if the window is minimized). Task-number: QTBUG-78000 Change-Id: Ia7d347019dfeae3bfcfad3d0cca3f4fffdc8c7a9 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Merge remote-tracking branch 'origin/5.14' into 5.15Qt Forward Merge Bot2019-10-051-8/+8
|\ | | | | | | Change-Id: I554a2762890391b3b6013c8b82211a8386a4ced8
| * Convert a few sizeof(array)/sizeof(element0) fors to range forsAlbert Astals Cid2019-10-041-8/+8
| | | | | | | | | | | | | | | | Increases readability Change-Id: I81ea915517fd2cd6bc2780f37ba8d8097c63f44b Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* | QVulkanWindow: Allow to change queues to createFrank Richter2019-09-241-12/+80
| | | | | | | | | | | | | | | | | | | | | | | | This allows users to request queues beyond the default graphics queue without having to completely reimplement Vulkan device initialization or giving up the convenience of QVulkanWindow. [ChangeLog][QtGui] Extended QVulkanWindow to allow user to specify additional queues to be created. Change-Id: I96d8d4bcc4da3ffedca3d25c87547669f5b18e40 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* | QVulkanWindow: Add function to retrieve graphics queue family indexFrank Richter2019-09-021-0/+17
|/ | | | | Change-Id: I51e4a006e82fbcd998815da3de6daa80558a973f Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Doc: Move literal code block to a separate fileCristian Maureira-Fredes2018-10-151-80/+3
| | | | | | | | | | | We need to override this snippet for the documentation we generate for Qt for Python, and it is easier to have it on a separate file. Task-number: PYSIDE-801 Task-number: PYSIDE-691 Change-Id: Ideb5b6af25024279f167137d3b65660bb9c96a7e Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* QVulkanWindow: Fix some load/store ops in the default renderpassLaszlo Agocs2018-09-121-2/+2
| | | | | | | | Stencil is - very likely - cleared just like depth. Also, switch to STORE_OP_STORE for the multisample buffer, for correctness. Change-Id: I31b56658286205af8551018115ca2abbe541be67 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* QVulkanWindow: Fix bogus stage masks in readbackLaszlo Agocs2018-09-121-1/+1
| | | | | Change-Id: I08882a02204c95272b100647923c9903f825912c Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* Fix device local alloc in hellovulkantextureLaszlo Agocs2018-09-121-0/+5
| | | | | | | | | | Running with QT_VK_FORCE_STAGE_TEX does not work at all with recent NVIDIA drivers due to QVulkanWindow's and the example's naive way of picking the memory index. Enhance this and add a warning note to the QVulkanWindow docs as well. Change-Id: I7f200e11d982b56e3da3b71ee3915bd7bfca5cc1 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* Revise an incorrect QVulkanWindow doc noteLaszlo Agocs2018-09-061-9/+5
| | | | | | | | | | | | | Applying the transformation in question has no effect on the winding order. Rewrite that section. While all the examples are correct, clarify the rules for the geometry they use since the winding order varies. Fix up the triangle example code to use front=CCW for clarity (even though it does not matter much since culling is off there). Change-Id: Icb968c76cc9fa918a5608d3c66b4fccd5668175e Reviewed-by: Christian Stromme <christian.stromme@qt.io>
* Fix redundant Vulkan logging category definitionLaszlo Agocs2017-11-031-22/+22
| | | | | | Task-number: QTBUG-64124 Change-Id: Ic8f9a7f62e3c00dba5f345037c45fb45908be848 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* QVulkanWindow: return QMatrix4x4 by valueMarc Mutz2017-05-221-3/+3
| | | | | | | The function never returns nullptr, so return the matrix by value. Change-Id: I7c1eeb43b9693866049763565b575348ddd35548 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* QVulkanWindow: use QVector, not QSet, for small int setMarc Mutz2017-05-221-4/+5
| | | | | | | | | | Apart from being more efficient to construct and test, for the expected very small number of entries, the example code itself shows that a sorted vector is much more useful than an unordered set. Change-Id: Ic5e38df0176ac4be08eac6a89c2e1cabab2a9020 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* QVulkanWindow: fix fatal warning on Clang 4Shawn Rutledge2017-05-031-1/+1
| | | | | | | | | | | | | | | qtbase/src/gui/vulkan/qvulkanwindow.cpp:1882:42: error: suggest braces around initialization of subobject [-Werror,-Wmissing-braces] VkClearColorValue clearColor = { 0.0f, 0.0f, 0.0f, 1.0f }; ^~~~~~~~~~~~~~~~~~~~~~ { } 1 error generated. VkClearColorValue is a union, so it wants to be clear that we are initializing only one of the union's members, apparently. (Even though initing more than one wouldn't make sense.) Change-Id: Id4afa3ddc1b4ce7e24e681fb93c0ee9083c41e08 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Fix some capitalization issues in QVulkan docsLaszlo Agocs2017-04-041-3/+3
| | | | | | | ...and remove see-alsoing wrappers that do not get a doc page. Change-Id: Ia26aeef3c142b15a47e650dfc7f64ad7339cc80d Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* doc: Fix several qdoc warnings in new softwareMartin Smith2017-03-311-34/+40
| | | | | | | | | | This change fixes several common qdoc warnings in this new software. However, because vulkan/vulkan.h is not always available, a few typedefs were also added to define some standard vulkan types for clang to see when vulkan.h is not available. Change-Id: Id3db8c0a59b0c415829c1873a868aba0e84fe21c Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Clarify the front face winding order in the Vulkan examplesLaszlo Agocs2017-03-261-0/+4
| | | | | | | | | After applying the correction matrix the front face is CW, not CCW. The examples work either way but fix them up to avoid reader confusion. Change-Id: I491e6dc17c21897a59f36d32061e937f2b6c4c9d Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* QVulkanWindow: Add missing device wait after user codeLaszlo Agocs2017-03-261-6/+17
| | | | | | | | | | In a multi-threaded setup it is not unlikely that releaseSwapChainResources() will wait for and submit any remaining frame building. Hence a wait is necessary also after invoking the user's implementation. Change-Id: I3c963c05c1c3981980da5e4ff9c572df24a1e473 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* Add missing class doc for QVulkanWindowRendererLaszlo Agocs2017-03-231-4/+24
| | | | | | | | The functions are documented but the class does not show up in the docs without the \class. Change-Id: I8a7e4c82ba11354855ca272e5c6be59cf1419f14 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* Introduce QVulkanWindowLaszlo Agocs2017-03-221-0/+2678
A convenience subclass of QWindow that provides a Vulkan-capable window with a double-buffered FIFO swapchain. While advanced use cases are better served by a custom QWindow subclass, many applications can benefit from having a convenient helper that makes getting started easier. Add also three examples of increasing complexity, and a variant that shows embeddeding into widgets via QWindowContainer. [ChangeLog][QtGui] Added QVulkanWindow, a convenience subclass of QWindow. Task-number: QTBUG-55981 Change-Id: I6cdc9ff1390ac6258e278377233fd369a0bfeddc Reviewed-by: Andy Nichols <andy.nichols@qt.io>