| Age | Commit message (Collapse) | Author |
|
|
|
Stops a deprecation notice from failing CI jobs for the time being while an upgrade is written.
|
|
This sets the WM_NAME property in X11/Xwayland, usually displayed as the
name on the application titlebar.
The motivation for this is to help with automated testing environments
on Xwayland. Testing frameworks such as wltest may use compositor
methods to automate controlling a window to perform tests. When running
through Xwayland, clients normally do not have much information exposed
about them which can make it difficult for the test framework to find
and manipulate the correct window.
This change defines the WM_NAME property to allow scripting frameworks
(such as Kwin's js API) to be able to find Vkcube on Xwayland.
|
|
Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 5.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v4...v5)
---
updated-dependencies:
- dependency-name: actions/checkout
dependency-version: '5'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
|
|
|
|
|
|
|
|
- Fix a warning in cube.cpp due to resetFences becoming nodiscard
|
|
This is a 'magic value' that shouldn't be allowed to overwrite the current window width & height. There is code to handle the value, but not everywhere it can come from.
|
|
The library names of Xcb, Xlib, and Wayland do not need to be queried from pkg-config,
instead they can be hardcoded to use the fallback names.
The intent of querying the library names was to prevent issues where the hardcoded name
was not the platform-appropriate name. But because <library>_LINK_LIBRARIES can have
more than one library name, the logic to assign <library>_LINK_LIBRARIES into a compile
definition breaks horribly. While it is possible to handle this in CMake, the dlopen code would
also have to handle it which is much more error prone.
|
|
|
|
Updated for latest version of MoltenVK
|
|
Includes necessary changes for VK_KHR_surface_maintenance1
|
|
Adds logic to ignore the key when printing a key-value if the current
context is an array, since that is not valid JSON.
|
|
|
|
|
|
|
|
|
|
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.
|
|
Wasn't moved after fixing that it was treated as a device function.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Ensures vkCreateDisplayPlaneSurfaceKHR is loaded using
vkGetInstanceProcAddr rather than vkGetDeviceProcAddr.
|
|
Previously volk was doing this for cube, but with that removed
vkcube/vkcubepp have to link it themselves.
|
|
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.
|
|
Makes each JSON field unique in the Presentatble Surfaces array by
appending the list of surfaces to the object name.
|
|
|
|
Better indicates the error that triggered the message,
and what the user should do about it.
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
Co-authored-by: Charles Giessen <46324611+charles-lunarg@users.noreply.github.com>
|
|
Co-authored-by: Charles Giessen <46324611+charles-lunarg@users.noreply.github.com>
|
|
|
|
|
|
|
|
Changes the format support check to compare against the
device extensions instead of the instance extensions.
|
|
|
|
The chains were including the structs even when protected memory isn't
desired, triggering validation errors.
|
|
|