Commit Graph
92 Commits
Author SHA1 Message Date
baldurk 06da5d1974 Set demo window title for vulkan tests 2026-09-15 17:00:54 +01:00
baldurk 49f3c76c57 Fix demos reference to device from window 2026-09-14 09:56:36 +01:00
baldurk 527f34614b vkDeviceWaitIdle workaround because presentation is broken 2026-09-13 12:57:43 +01:00
baldurk 3cc984148c Put demos temp files in each demo's tmp directory 2026-09-11 17:27:36 +01:00
Jake Turner 30c78d389a Add VulkanGraphicsTest::setName() overload for VkQueue & VkShaderModule 2026-09-09 15:24:59 +01:00
baldurk ccc110c57e Fix some validation errors in tests 2026-07-24 17:52:48 +01:00
Jake Turner d8cb84e2ce Add setName overload for VkCommandBuffer, VkCommandPool 2026-04-21 10:37:46 +01:00
Jake Turner eb30aebfdf Add more overloads for VulkanGraphicsTest::setName 2026-03-30 13:27:30 +01:00
Jake Turner 56de707492 Demos support for "VK_EXT_metal_surface" on Apple 2026-02-09 20:06:59 +00:00
baldurk 856c838def Update copyright years to 2026 and fix copyright ranges
* In a previous update in 2021 many copyright ranges were truncated
  accidentally, and some files have been copy-pasted with wrong years. These
  dates have been fixed based on git history and original copyright messages.
2026-01-05 14:17:28 +00:00
baldurk 81a367be66 Add naming helper for image views 2025-10-15 12:32:44 +01:00
baldurk 25adde711a Enforce extra alignment on AS buffers in demo 2025-07-29 16:44:08 +01:00
baldurk d1ce4ac412 Ignore VUID-vkAcquireNextImageKHR-semaphore-01779 2025-07-29 16:43:05 +01:00
baldurk 3e70a37fac Add test of descriptor buffer 2025-07-09 09:57:56 +01:00
baldurk 6e5518e882 Add --gpuva option to vulkan tests 2025-06-19 16:14:18 +01:00
thisisjimmyfb b79d1e6fe2 Android swapchain format selection prefer to use srgb format
Android to use similar swapchain format and dimension as Windows
2025-06-19 11:45:04 +01:00
thisisjimmyfb 035fc9974d Remote Android and Linux test support part 2
Support swapchain image size greater than 4
2025-06-19 11:45:04 +01:00
baldurk d7236e0d91 Fix reads & writes to storage texel buffers in vulkan shader debugging 2025-05-26 14:59:46 +01:00
Jake Turner 7eef20b3db Added demos test VK_Mesh_Shader
Similar on d3d12_mesh_shader test, move some helper code from d3d12_mesh_shader python to testcase.py to allow for sharing with vk_mesh_shader python
2025-03-20 13:52:17 +00:00
baldurk 2322e165de Update copyright years to 2025 2025-03-14 18:54:37 +00:00
Cam Mannett 7b767c9e6e Preliminary Vulkan AS/RQ test
This test renders a small triangle that casts a shadow from a point light, onto a larger triangle.  The test runner then checks that various pixels in the final output are the correct colour.

There is also an arbitrary AS copy in the render loop just to hit more API coverage when manually capturing, but the test runner doesn't check its output.

Core test work originally done by martyn.jacques@arm.com
2024-11-25 13:09:22 +00:00
baldurk dea24cd5d8 Add BDA support to AllocatedBuffer in demos
* This requires setting vmaBDA to true, which is opt-in as it applies
  universally to all memory allocations in the test. We don't know if there are
  driver impacts from enabling BDA and it may also mess with our tests.
2024-11-20 15:49:53 +00:00
baldurk 9916defb14 Update VMA to v3.1.0
* We make BDA opt-in as it applies to all memory allocations.
2024-11-20 15:49:53 +00:00
baldurk 030f3430ee Workaround AcquireNextImage being awful
* Apparently the spec allows drivers to do extremely stupid things with
  swapchain images and return them even when it's not valid for you to use them
  yet because last frame's work to the image is still ongoing, which leads to a
  validation warning about using a semaphore when it might technically still be
  in flight.
* To get around this because AcquireNextImage doesn't actually block until an
  image is ready inspite of having a timeout and being expected to return a
  usable image it doesn't, we use a manual fence to do what AcquireNextImage
  should be doing.
2024-11-20 15:49:53 +00:00
baldurk 178b733001 Add helper for loading a shader module from disk in tests 2024-09-09 14:45:30 +01:00
baldurk 525babb868 Add a semaphore per swapchain image
* With only a single semaphore we can only have one frame in flight and get
  validation layer messages if we run faster than that and re-use the
  renderStartSemaphore before the previous frame has completed.
2024-03-18 10:28:36 +00:00
baldurk 9f4f0e6aa1 Update copyright years to 2024 2024-02-12 11:04:52 +00:00
Jake Turner 93eb160e08 Revert "Update VMA Allocator to v3.0.1"
It is causing more problems than benefits

This reverts commit 6895194805.
2024-01-03 13:34:13 +00:00
Jake Turner 6895194805 Update VMA Allocator to v3.0.1
Disabled warnings 4189, 4324 for vk_test.cpp

4189: 'identifier' : local variable is initialized but not referenced

4324: 'struct_name' : structure was padded due to __declspec(align())

because of warnings in vk_mem_alloc.h
2023-12-22 12:53:40 +00:00
baldurk 9d39b8e1a8 Reformat code for clang-format 15 2023-09-05 11:02:08 +01:00
Jake Turner 117db087a4 Vk tests ignore default pipeline in headless mode
Fixes crash trying to launch VK_Compute_Only
2023-07-20 17:26:30 +01:00
baldurk 7f8e14fb65 Add some helpers to make minimal templates for each autotest API 2023-06-15 11:25:27 +01:00
baldurk 448b78ca68 Bare bones port of demos project to android 2023-03-23 16:16:03 +00:00
baldurk d47e79ae07 Update copyright years to 2023 2023-02-01 12:23:32 +00:00
baldurk c0d4a75d52 Allow forcing on a graphics or compute-only queue in demos
* This creates multiple queues and can be useful for testing, when the test only
  uses one or the other as its primary queue.
2022-12-21 23:03:39 +00:00
baldurk 4e4a7518fa Ensure inline uniform blocks have descriptor pool space allocated 2022-09-19 16:44:56 +01:00
Jake Turner c83851e884 First Apple platform support for Vulkan demos
Uses Metal-CPP-Extensions code to create window and the event loop.
Does not include support for Nuklear
2022-07-08 11:08:18 +01:00
baldurk 4d9f53427e Check queue availability in vulkan compute-only test 2022-06-24 12:22:13 +01:00
baldurk 7d9a1a05b8 Correctly handle programs that don't create graphics queues 2022-06-21 15:31:41 +01:00
baldurk a9562c87f5 Test that discard patterns don't disturb bound state on vulkan 2022-05-03 15:30:20 +01:00
baldurk fcdea67879 Update copyright years to 2022 2022-02-17 17:38:32 +00:00
baldurk ec5c14dee8 Add support for multiple batched presents on vulkan. Closes #2492 2022-02-10 16:36:19 +00:00
baldurk 0d7dcabdac Clamp version for vulkan 1.3 drivers that don't support BDA cap/replay 2022-01-31 17:25:23 +00:00
baldurk 438d823c32 Add support for optional physical device features to vulkan tests 2021-03-02 17:08:47 +00:00
baldurk 5cb9b90f5f Implement support for VK_KHR_synchronization2
* For the most part we implement this as a thin pass-through layer. Where we
  care about things (image barriers for layout transitions and queue
  submissions) we do two different things:
  - For image barriers, we "downcast" to plain VkImageMemoryBarrier. Currently
    the only thing that's unique to VkImageMemoryBarrier2KHR is extra access
    flags and pipeline stages, which we don't care about. This keeps a lot of
    code from having to either handle two paths or handle the new path and then
    do lots of conversions back to VkImageMemoryBarrier when running on older
    drivers.
  - For queue submissions we do the opposite. We promote old VkSubmitInfo to
    VkSubmitInfo2KHR and process that in a common function, then if necessary
    we decay back to VkSubmitInfo before sending to the driver.
2021-02-17 15:03:52 +00:00
baldurk 7e6a785055 Add test of vulkan dedicated allocations 2021-02-01 14:43:43 +00:00
baldurk ec50e9005a Test inline uniform block descriptors in VK_CBuffer_Zoo 2021-01-13 15:32:09 +00:00
baldurk 026da176bb Update copyright years to 2021 2021-01-13 13:56:10 +00:00
baldurk b69ca4526e Log the specific error if vkCreateInstance fails in demo program 2020-12-03 10:59:05 +00:00
baldurk 39f4e82641 Add test of performance with large descriptor sets 2020-10-27 14:04:45 +00:00