aboutsummaryrefslogtreecommitdiff
path: root/cube/cube.cpp
AgeCommit message (Collapse)Author
2022-03-21cubepp: Copy cubes swapchain format selectionCharles Giessen
The differing logic led to vkcube choosing a different swapchain image format to vkcubepp.
2022-03-21cubepp: Cleanup usage of C++ and vulkan.hppCharles Giessen
Many changes to better utilize C++ and vulkan.hpp's features. Includes: * range-for loop usage where appropriate * References instead of pointers * using std::vector and std::array * Using C++11's default struct values * Making use of vulkan.hpp functions which return vectors * Passing objects by reference to vulkan.hpp instead of by pointer * Rename in application title to vkcubepp
2021-12-12Fix error messages upon failure to connect to window systems.C Stout
Change-Id: I650958a8b2607eb3402eb6531909881d4a2ccc0f
2021-12-01vkcube/vkcubepp: Add option to force validation errorsMark Young
During tests, it's hard to determine if the --validation option is actually working properly. So add an option (--force_errors) to intentionally force a few validation error messages to make sure that validation is working properly.
2021-08-31cubepp: Fix gitlab 828.Jeremy Hayes
Expect and deny negative window dimensions.
2021-07-07vulkaninfo/cube: added support for FreeBSDEleni Maria Stea
Made some changes for Vulkan-Tools to compile on FreeBSD.
2021-06-23vkcube: Remove unused variable from Wayland buildTony-LunarG
Change-Id: Iedc4929547cd58063481e0cf19dda6ba38846a16
2021-06-17vkcube: Remove unused variableTony-LunarG
Change-Id: I8064d5e97700cb1a233b61d37aba92ca5f752560
2021-06-14cube: Port Wayland impl from wl-shell to xdg-shellManuel Stoeckl
This change ports vkcube in both C and C++ versions to use the stable xdg-shell protocol for Wayland compositors. The original wl-shell protocol has been deprecated and is being removed from major compositor libraries; wlroots has already dropped support. New cmake modules have been added to look for Wayland-Protocols (containing XML descriptions of all common protocols) and `wayland-scanner`, the tool used to convert the XML files to a usable C interface. The change also adds support for the xdg-decoration protocol, which for some compositors is provided and needed to let them know that they should draw a titlebar, borders with resize controls, and other standard features. Change-Id: I39bedda93a7c5d0aeeb59c68023552723b413567
2021-06-11vkcube: Fix compilier warningsTony-LunarG
Change-Id: I199d4064f0e034cb747a87844c250203fcf22157
2021-06-07vkcube: Resize on SUBOPTIMAL if necessaryTony-LunarG
Change-Id: I6421c661880695ba359969fb5e8752e2140167f5
2021-06-03vkcube: Fix disturbed rotation after many iterationsArman Uguray
vkcube computes the model matrix for the cube by repeatedly multiplying a rotation matrix with it. After a sufficient number of iterations the matrix becomes disturbed (likely due to numerical errors) and stops being orthogonal and the cube vertices start scaling increasingly on the XY plane. * Orthonormalize the model matrix after each multiplication to prevent the scaling. * Use mat4x4_rotate_Y() instead of mat4x4_rotate() as it is less verbose. * Remove unused duplicate vkcube_vs_uniform struct.
2021-03-15cube: Select phy device for DISPLAYTony-LunarG
Change-Id: I3075c06220d9b02a3eb9b2e6846a13b9ceea1abe
2021-01-15vkcube: Add options --width and --height to specify width and heightNicolas Caramelli
Change-Id: Ie2533ad22e4bf9672f749138baddc0313169d09b
2021-01-12vkcube: Improve GPU auto-selectionWitold Baryluk
Instead of selecting GPU 0, prefer dGPU, iGPU, vGPU, CPU, OTHER. In that order. If user selects specific gpu_number (including 0), use only that and don't fallback to anything else, even when incorrect.
2021-01-06vkcube: portabilty extension as text so it builds on all platformsRichard S. Wright Jr
2021-01-06Defined VK_ENABLE_BETA_EXTENSIONS so that ↵Richard S. Wright Jr
VK_KHR_PORTABILITY_SUBSET_EXTENSION_NAME would be defined
2021-01-06vkcube: Updated to support portability extension properlyRichard S. Wright Jr
2020-08-07Fix formatting errorsNicolas Caramelli
2020-08-07Add support for VK_EXT_directfb_surface extensionNicolas Caramelli
2020-07-17cube: Add option to select phys deviceTony-LunarG
Change-Id: Ic6ff0210b586e03597aa3418b45bf0fa57b1157c
2020-05-07build: Update known-good files for 1.2.140 headerMike Schuchardt
Changes: - Modify cubepp to use initializer lists for some calls because the compiler could not deduce the correct overload from the int+pointer array specification - Propagate genvk.py changes from VVL - Modify .gitattributes so generated files are checked out with LF line-endings - Updated known-good files - Generated new source files
2020-04-13build: Update known-good files for 1.2.137 headerShannon McPherson
Changes: - Updated known-good files - Generated new source files - Removed `VULKAN_HPP_NO_SMART_HANDLE` definition for `cube.cpp` Change-Id: Icb0152455f2c0b21a29d70462d05b958c53be861
2020-03-20cube: Remove redundant memsetCharles Giessen
The C++ Vulkan headers will default initialize objects, not need to memset it. Change-Id: Icdc5cde13410bc7f0002c2d6d4075e79100fd86d
2019-12-19cube: Leave uniform memory mappedTony-LunarG
Best practice is to leave memory mapped for the life of the app rather than map-update-unmap Change-Id: Iab7ff62a4ebdf47f4916f7d769d0cf3647a52d31
2019-12-06Revert "cube: Port Wayland impl from wl-shell to xdg-shell"Tony-LunarG
This reverts commit 6f6e3371c92ac63bf29d5010b2933659e3f8dbef. We've received complaints that this change is incompatible with Wayland users running the Weston compositor Change-Id: Icd0c96a7726969570655b886d8fb623a04543985
2019-12-02vkcube: Replace MoltenVK surfaces with MetalBill Hollings
Made DemoViewController.m compatible with VK_EXT_metal_surface extension and replaced all references to VK_MVK_macos_surface and VK_MVK_ios_surface with VK_EXT_metal_surface. Change-Id: I4a163bc9c6109b44d169c6565313ab52161d38fc
2019-11-27vkcube: Fix Cube Squishing on ResizeJeremy Kniager
Modified viewport creation in vkcube to keep the aspect ratio square and centered. This change prevents cube from squishing and warping when the window is resized. It now shrinks and grows. Change-Id: Ie2b3c5747293dfed968af5d83b581ac74d81bb10
2019-11-25cube: Port Wayland impl from wl-shell to xdg-shellManuel Stoeckl
This change ports vkcube in both C and C++ versions to use the stable xdg-shell protocol for Wayland compositors. The original wl-shell protocol has been deprecated and is being removed from major compositor libraries; wlroots has already dropped support. New cmake modules have been added to look for Wayland-Protocols (containing XML descriptions of all common protocols) and `wayland-scanner`, the tool used to convert the XML files to a usable C interface. The change also adds support for the xdg-decoration protocol, which for some compositors is provided and needed to let them know that they should draw a titlebar, borders with resize controls, and other standard features. Change-Id: I39bedda93a7c5d0aeeb59c68023552723b413567
2019-10-14cube: Revert 1.1.114 SDK workaround for vkcubeJeremy Kniager
During the release of the 1.1.114 MacOS SDK a workaround for vkcube was needed to get it functioning in time for release. The underlying problem has since been fixed and this workaround is not longer necessary. Change-Id: I3ad3d1bafa44cfbc158820025bb22757d6e5683d
2019-09-13cube: Handle SURFACE_LOST return codeTony-LunarG
Change-Id: I6989c7da3e36ec8531ff390ca9ee2f9710776f11
2019-07-26cube: Workaround macOS cube issueMike Schuchardt
Latest version of MoltenVK behaves in an apparently non-conformant way by not allowing some linear images to be mapped to memory with VK_MEMORY_PROPERTY_HOST_COHERENT_BIT. This change sidesteps the issue by forcing the use of staging buffer for loading textures.
2019-06-17cube: Add subpass dependenciesTony-LunarG
Shared depth buffer and image layout transition both need to be accounted for Change-Id: Id26bc47798c58e4435a5585def3161105b7fffd1
2019-06-06cube: Add usage message on WindowsTony-LunarG
Change-Id: Id709544863b50def407d7e18c330914bebc9c03a
2019-04-23cube: remove unused validation_layer_count.Dave Airlie
This is assigned but never used. Pointed out by coverity.
2019-04-23cube.cpp: fix uninit non-static member.Dave Airlie
This was pointed out by coverity.
2019-04-09scripts: Update known good for 106 header updateShannon McPherson
Changes: - Integrate upstream script changes: We have to plumb-through the new conventions object to continue using the makeCParamDecl utility function - Add GGP to available platforms - Define `VULKAN_HPP_TYPESAFE_CONVERSION` in `cube.cpp` to avoid build errors concerning explicit/implicit casting in `vulkan.hpp` - Update known-good files Updated: - `build-android/vulkan-headers_revision_android` - `cube/cube.cpp` - `scripts/common_codegen.py` - `scripts/known_good.json` - `scripts/kvt_genvk.py` - `scripts/mock_icd_generator.py` - `scripts/vulkan_tools_helper_file_generator.py` Change-Id: Ie9deb9f088d666195bcb987e30974f274d33fc85
2019-04-08cube: Update cube apps to use Khronos val layerMark Lobodzinski
2019-02-14vkcube: Implement key events in WindowsPetr Kraus
2018-11-19cube: Update cube/vkcube namingLenny Komow
Change-Id: I633c97e9b82a6b5069cc2e7a83106f5d17600c6b
2018-10-31demos: Fix cubepp with latest vulkan.hppMike Schuchardt
Add explicit casts for nullptr values passed to vulkan.hpp so the correct function overload is selected.
2018-10-26repo: Remove MIR specific code.Tony-LunarG
Still need to remove MIR from scripts/common_codegen.py and from the Vulkan wrapper. Change-Id: Ib00cbe10b3e80878fb5e15c1e628685f33d31331
2018-10-04Ignore window erasesAaron Hagan
2018-09-24cube: Use staging buffer instead of staging imageTony-LunarG
There is no guarantee that linear images are supported Change-Id: Ie59f3bf7bfc1d77e17f1d06ffc524e886dca46a6
2018-09-12cube: Fix new validation errorKarl Schultz
As of Vulkan-ValidationLayers commit 2872f4a, the layers now check that image layouts specified in descriptors match the current image layout state. LAYOUT_GENERAL is not a wildcard for this matching. Change the image layouts for the combined image sampler descriptors from LAYOUT_GENERAL to LAYOUT_SHADER_READ_ONLY_OPTIMAL.
2018-06-05cube: Fix separate present queue validation errorsTony-LunarG
From the spec: Whilst it is not invalid to provide destination or source access masks for memory barriers used for release or acquire operations, respectively, they have no practical effect. Access after a release operation has undefined results, and so visibility for those accesses has no practical effect. Similarly, write access before an acquire operation will produce undefined results for future access, so availability of those writes has no practical use. In an earlier version of the specification, these were required to match on both sides - but this was subsequently relaxed. These masks should be set to 0. Change-Id: I495dc86ad62c0651fbc6acbfb0dfbb8245a324be
2018-05-31cube: Explicitly set QueueFamilyIndex(s) to QUEUE_FAMILY_IGNOREDTony-LunarG
The QueueFamilyIndex fields only come into play when you want to use an image in two or more queues from different queue families, which cube does not do. Change-Id: I610aa8899539eeb25ca06254b88e6a6d0a2ffc97
2018-05-30build: Add cube(pp) to install targetKarl Schultz
- Modify cube and cubepp to obtain the texture image data from an include file instead of reading a PPM file at runtime. (This is the way it works for Android) This removes the need to install an image file or otherwise make an image file available in a repo build. - Add cube and cubepp to the install target. Note: The file handling code is left in place to make it easy to add a "-texture_file <file>" option so a user can pass in a texture file. Fixes #5
2018-05-11cube: Move cube directory up to top level dirMark Lobodzinski
Change-Id: Ie1116b0b6de742b4f85834a4c9d1927dd641e19b