Timo Aaltonen pushed to branch upstream-unstable at X Strike Force / vulkan / vulkan-tools
Commits: 315964ad by Daniel Rakos at 2025-01-06T16:19:01-07:00 vulkaninfo: Add video profiles support - - - - - 26c7bde3 by Mike Schuchardt at 2025-01-17T10:57:51-08:00 build: Update to header 1.4.305 - - - - - 8e675c28 by Karen Webb at 2025-01-21T20:31:17-07:00 cube: Correctly apply sRGB OETF/EOTF - - - - - 814b35a3 by Peter0x44 at 2025-01-22T09:12:17-07:00 vulkaninfo: Correct typo targetted -> targeted - - - - - 8ce2501d by spencer-lunarg at 2025-01-23T08:48:40-05:00 icd: Add VkPhysicalDeviceMaintenance3Properties - - - - - 7658238d by Mike Schuchardt at 2025-01-24T09:35:42-08:00 build: Update to header 1.4.306 - - - - - c52931f0 by Mike Schuchardt at 2025-01-30T16:59:12-08:00 build: Update to header 1.4.307 - - - - - a9f88a23 by Juan Ramos at 2025-02-05T11:22:23-07:00 cmake: Update minimum to 3.22.1 - - - - - b4061dbb by Yilong Li at 2025-02-18T03:54:05-06:00 vulkaninfo: Support Fuchsia This change adds Fuchsia-specific build files and metadata for vulkaninfo so that it builds on Fuchsia. Test: vulkaninfo on Fuchsia Bug: https://fxbug.dev/378964821 Change-Id: I069b808394995db94b109c15d18dd6797a97c534 - - - - - 8a7c2760 by Yilong Li at 2025-02-18T04:02:30-06:00 vkcubepp: Remove implicit casts 1. std::tolower() returns an `int` value. Implicit converting an `int` to a `char` may trigger compiler warnings (-Wconversion on gcc and clang). This change adds an explicit cast to suppress the implicit conversion warnings. 2. Previously we used `assert(!"....")` to show error messages. This does an implicit conversion from `const char*` to `bool` which triggers compiler warnings (-Wconversion). This change replaces it with `assert(false && "...")` which doesn't trigger the warning. Bug: https://fxbug.dev/378964821 Change-Id: I51be6858db558568619d0d2e6bc01a544d3459e4 - - - - - dbe142e8 by Yilong Li at 2025-02-18T04:02:55-06:00 vkcubepp: Support Fuchsia This change was originally in Fuchsia's Vulkan-Tools fork (https://fxrev.dev/441056). It adds Fuchsia OS (https://fuchsia.dev) support to vkcubepp. Fuchsia has two WSI platforms available: It can render directly to display frame buffer (fuchsia_display), or use Fuchsia's Scenic compositor (fuchsia_scenic). All Fuchsia-specific code is under VK_USE_PLATFORM_FUCHSIA ifdef build guards and is only compiled for Fuchsia targets. This change also adds a BUILD.gn file used for Fuchsia in-tree builds. Test: vkcube-on-fb and vkcube-on-scenic on Fuchsia Bug: https://fxbug.dev/378964821 Change-Id: Id4627bf209b4fc9400ce7f6847324cad2060c31c - - - - - 176fef0b by Mike Schuchardt at 2025-02-21T11:53:11-08:00 build: Update to header 1.4.309 - - - - - ba5e5dc5 by Charles Giessen at 2025-02-25T09:10:37-06:00 build: Update Volk to vulkan-tmp-1.4.309 branch - - - - - fb8f5a5d by Charles Giessen at 2025-02-25T09:38:48-06:00 ci: Prevent double-running ci in main repo Prevents pushes to branches on the main repo from having ci run if there is an active PR on that branch to main. - - - - - 4b1c7580 by John Zupin at 2025-03-03T15:35:34-06:00 build: update volk branch to vulkan-sdk-1.4.309 Remove the reference to the vulkan-tmp-1.4.309 branch which will be deleted eventually. - - - - - dd0c2e4a by Yilong Li at 2025-03-06T09:54:32-06:00 vkcubepp: Support protected output This change was originally introduced into Fuchsia's Vulkan-Tools fork in https://fxrev.dev/c/third_party/Vulkan-Tools/+/444614. If `--protected_output` command line option is specified, vkcubepp will render to the protected memory. Bug: https://fxbug.dev/378964821 Change-Id: I11c89d3d722236448edd41ca51a03f80d0ba7324 - - - - - 7efad3a1 by Charles Giessen at 2025-03-06T16:08:52-06:00 vulkaninfo: Use Object for "Vulkan Profiles" array The "Video Profiles" element must be a JSON Object in order for the sub elements to have names. The outputprinter helper doesn't prevent mixing objects inside of arrays, so this wasn't caught during development. - - - - - 2bcf294e by Mike Schuchardt at 2025-03-07T13:11:25-08:00 build: Update to header 1.4.310 - - - - - 42c54538 by Charles Giessen at 2025-03-08T09:20:04-07:00 icd: Add build support for iOS and Metal surfaces The CMakelists.txt only enabled the MACOS_MVK surface extension, so this makes MockICD more flexible for users. - - - - - 4d5e1f89 by Charles Giessen at 2025-03-08T12:59:41-07:00 vulkaninfo: Use Object in video props vkconfig output - - - - - 072c8124 by Charles Giessen at 2025-03-08T12:59:52-07:00 cube: Fix protected memory pNext chains The chains were including the structs even when protected memory isn't desired, triggering validation errors. - - - - - 32ee3e6e by Mike Schuchardt at 2025-03-21T09:49:10-07:00 build: Update to header 1.4.311 - - - - - da7c7db2 by Luis Jose-Romero at 2025-03-27T09:15:12-06:00 vulkaninfo: Fix unreported extension formats Changes the format support check to compare against the device extensions instead of the instance extensions. - - - - - 289efccc by Charles Giessen at 2025-03-27T11:41:08-06:00 cmake: Check wayland pkgconfig deps for cube - - - - - 9c0fff27 by Mike Schuchardt at 2025-04-07T09:03:56-06:00 build: Update to header 1.4.312 - - - - - 3411f921 by Water Chika at 2025-04-07T09:15:36-06:00 Select physical device before create surface is platform is WSI Display - - - - - 4078c4f2 by Water Chika at 2025-04-07T09:15:36-06:00 Update cube/cube.c Co-authored-by: Charles Giessen <[email protected]> - - - - - 59dc56aa by Water Chika at 2025-04-07T09:15:36-06:00 Update cube/cube.cpp Co-authored-by: Charles Giessen <[email protected]> - - - - - 8d5d50c2 by Water Chika at 2025-04-08T15:17:20-06:00 vkcubepp: Refactor create_window and run functions - - - - - 555dca10 by Water Chika at 2025-04-08T15:17:20-06:00 vkcubepp: refactor: Add MacOS fix. - - - - - 5394fd5d by Charles Giessen at 2025-04-11T15:13:14-06:00 cube: Only count non-minimized frames - - - - - 5d938330 by Charles Giessen at 2025-04-11T15:13:14-06:00 cubepp: Fix incremental present on swapchain recreate - - - - - a8f20787 by Charles Giessen at 2025-04-11T15:13:14-06:00 cube: Re-record command buffers each frame Rerecord command buffers every frame, as command buffer recording isn't slow, and outside of trivial samples (like vkcube) isn't a practical architecture for organizing a Vulkan renderer. This makes vkcube and vkcubepp reflect typical Vulkan renderer architecture and serves as a better sample. Create structs to organize objects into distinct synchronization scopes, one for submissions and the other for swapchains. Resources associated with a swapchain image such, as image views, framebuffers, and presentation semaphores, must be duplicated as many times as there are swapchain images. This number is dependent on the runtime, so can't be pre-determined. The submission resources, which are the command buffers, fences, descriptor sets, device memory, and uniform buffers, only needs duplication for the pipelining. Specifically, this allows the GPU to execute a command buffer while the CPU record the next frame's command buffer. The FRAME_LAG constant dictates the pipeline depth, commonly called double buffering, and is set to 2 since that is sufficient for a vast majority of use cases. Swapchain resizing now only re-creates the bare necessity of resources: Swapchain, image views, framebuffers, presentation semaphores, and the depth buffer. Presentation semaphores are recreated to prevent state from an old swapchain from polluting a new swapchain. The depth buffer is re-created since its size is dependent on the window size. All other objects, such as pipelines and renderpasses, do not need recreation as they either are not liable to change during resizing, or have mutable state that can be flexibly updated, such as dynamic pipeline viewport and scissors. The code for dynamic viewports and scissors was already present but wasn't taken advantage of until now. - - - - - 50ace769 by Charles Giessen at 2025-04-16T10:53:32-06:00 cube: Fix broken framecount - - - - - b1fc6158 by Mike Schuchardt at 2025-04-18T13:05:13-07:00 build: Update to header 1.4.313 - - - - - 7ef5a896 by Charles Giessen at 2025-04-21T17:00:14-06:00 cube: Update formatting to clang-format-18 - - - - - 08428963 by Charles Giessen at 2025-04-21T17:00:14-06:00 cube: Update missing WSI extension messages Better indicates the error that triggered the message, and what the user should do about it. - - - - - 0b819672 by Charles Giessen at 2025-04-23T16:33:59-06:00 build: Update volk dependency to 1.4.313 - - - - - 3e9d7a00 by Charles Giessen at 2025-04-25T13:11:28-06:00 vulkaninfo: Make Presentable Surfaces array unique Makes each JSON field unique in the Presentatble Surfaces array by appending the list of surfaces to the object name. - - - - - 682e42f7 by Charles Giessen at 2025-04-25T13:11:28-06:00 build: Remove Volk dependency The intent of using Volk for function loading was to validate Volk's implementation continually with each header update. This didn't end up occurring, as Volk does not get updated in lock step with Vulkan-Tools, leading to Vulkan-Tools using an older version of Volk. And then during SDK release the version would need to be updated at the last minute, causing churn and extra work. Function loading now occurs in two new files, cube_functions.h and vulkaninfo_functions.h. Since both cube and vulkaninfo's function usage are fixed (as in not code-generated), it is straightforward to implement the necessary Vulkan-Loader library opening and function loading code. - - - - - ad2f0170 by Charles Giessen at 2025-04-28T20:41:54-06:00 cube: Link to CMAKE_DL_LIBS Previously volk was doing this for cube, but with that removed vkcube/vkcubepp have to link it themselves. - - - - - af3abdf3 by Nathaniel Cesario at 2025-04-28T22:26:41-06:00 cube: Fix validation warning Ensures vkCreateDisplayPlaneSurfaceKHR is loaded using vkGetInstanceProcAddr rather than vkGetDeviceProcAddr. - - - - - ba13d38d by Mike Schuchardt at 2025-05-05T15:00:54-06:00 build: Update to header 1.4.314 - - - - - 60b640cb by Mike Schuchardt at 2025-05-09T09:20:03-07:00 build: Update to header 1.4.315 - - - - - e4fb76dc by Mike Schuchardt at 2025-05-30T12:01:38-07:00 build: Update to header 1.4.316 - - - - - fbe72265 by Mike Schuchardt at 2025-06-06T10:04:55-07:00 build: Update to header 1.4.317 - - - - - d6719230 by Mike Schuchardt at 2025-06-13T14:08:03-07:00 build: Update to header 1.4.318 - - - - - e3fc6439 by Mike Schuchardt at 2025-06-20T13:30:13-07:00 build: Update to header 1.4.319 - - - - - 99365fc2 by Mike Schuchardt at 2025-06-27T10:03:26-07:00 build: Update to header 1.4.320 - - - - - 55f6b397 by Charles Giessen at 2025-06-28T13:30:37-05:00 cube: Move instance function declaration Wasn't moved after fixing that it was treated as a device function. - - - - - abc74519 by Xaver Hugl at 2025-06-30T10:25:22-05:00 cube: prefer Wayland over X11 when available In Wayland sessions, X11 is still available through a compatibility layer, but should effectively never be used over a native Wayland connection if the application is capable of that. - - - - - 27590b43 by Charles Giessen at 2025-06-30T11:21:10-05:00 mock_icd: Fix vkGetPhysicalDeviceSurfacePresentModesKHR not writing count. - - - - - b2167f5c by Charles Giessen at 2025-06-30T11:21:10-05:00 mock_icd: Write count in vkEnumerateDeviceExtensionProperties - - - - - 778f4098 by Charles Giessen at 2025-06-30T11:21:10-05:00 mock_icd: Add VkPhysicalDeviceLayeredApiPropertiesListKHR to output - - - - - 68441fe7 by Charles Giessen at 2025-06-30T11:21:10-05:00 vulkaninfo: Pretty print vendorID and deviceID in codegen - - - - - f0f308ad by Charles Giessen at 2025-06-30T11:21:10-05:00 vulkaninfo: Don't write keys while inside of an array Adds logic to ignore the key when printing a key-value if the current context is an array, since that is not valid JSON. - - - - - 06ae73a3 by Charles Giessen at 2025-07-07T11:34:37-05:00 build: Update to header 1.4.321 Includes necessary changes for VK_KHR_surface_maintenance1 - - - - - 39 changed files: - .github/workflows/tools.yml - BUILD.md - CMakeLists.txt - + cube/BUILD.gn - cube/CMakeLists.txt - cube/cube.c - cube/cube.cpp - cube/cube.frag - cube/cube.frag.inc - cube/cube.vert.inc - + cube/cube_functions.h - + cube/fuchsia/flatland_view.cpp - + cube/fuchsia/flatland_view.h - + cube/fuchsia/meta/vkcube-on-fb-protected.cml - + cube/fuchsia/meta/vkcube-on-fb.cml - + cube/fuchsia/meta/vkcube-on-scenic-protected.cml - + cube/fuchsia/meta/vkcube-on-scenic.cml - cube/macOS/cubepp/DemoViewController.mm - icd/CMakeLists.txt - icd/VkICD_mock_icd.json.in - icd/generated/function_declarations.h - icd/generated/function_definitions.h - icd/generated/vk_typemap_helper.h - scripts/CMakeLists.txt - scripts/common_codegen.py - scripts/generate_source.py - scripts/known_good.json - scripts/kvt_genvk.py - scripts/mock_icd_generator.py - scripts/vulkaninfo_generator.py - + vulkaninfo/BUILD.gn - vulkaninfo/CMakeLists.txt - + vulkaninfo/fuchsia/meta/vulkaninfo.cml - vulkaninfo/generated/vulkaninfo.hpp - vulkaninfo/outputprinter.h - vulkaninfo/vulkaninfo.cpp - vulkaninfo/vulkaninfo.h - vulkaninfo/vulkaninfo.md - + vulkaninfo/vulkaninfo_functions.h The diff was not included because it is too large. View it on GitLab: https://salsa.debian.org/xorg-team/vulkan/vulkan-tools/-/compare/4c25e78dd87720275ab069de1fe2e005cd528ed9...06ae73a3dc3a03466817d8370355203dac7b79b1 -- View it on GitLab: https://salsa.debian.org/xorg-team/vulkan/vulkan-tools/-/compare/4c25e78dd87720275ab069de1fe2e005cd528ed9...06ae73a3dc3a03466817d8370355203dac7b79b1 You're receiving this email because of your account on salsa.debian.org.

