-
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 <46324611+charles-lunarg@users.noreply.github.com>
-
59dc56aa
by Water Chika at 2025-04-07T09:15:36-06:00
Update cube/cube.cpp
Co-authored-by: Charles Giessen <46324611+charles-lunarg@users.noreply.github.com>
-
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