Commit Graph
52 Commits
Author SHA1 Message Date
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
baldurk 925b49daa6 Fix handling of instance extensions in vulkan tests 2020-09-11 18:51:27 +01:00
baldurk e1f90b4b01 Add test that validation layers and extensions can be captured 2020-07-15 14:11:42 +01:00
baldurk 5c57493855 Share common shader source on vulkan 2020-07-15 14:05:20 +01:00
baldurk 02a54be6ad When replaying resource discards fill with explicit pattern. Closes #284
* This helps catches cases where a discarded image is accidentally used and in
  many cases may still have valid data. Particularly on Vulkan this is relevant
  for DONT_CARE renderpass load and store ops.
2020-07-13 17:29:11 +01:00
baldurk 6d23e59aa6 Support specifying next chain to instance creation, and inst extensions 2020-06-29 13:10:51 +01:00
baldurk 3b28df0543 Add helper for uploading data into an image 2020-05-27 22:38:04 +01:00
baldurk ff62ab501c Add helpers for creating samplers 2020-05-27 22:38:04 +01:00
baldurk d71dadda9d Update vulkan headers to 1.2.141 2020-05-21 17:53:37 +01:00
baldurk b8f83fca4c Add helper for blitting to swapchain in demos
* This isn't needed for testing but it's convenient to get simple window output
  even when we need to be writing to an F32 target
2020-05-11 18:04:22 +01:00
baldurk 59f06a12f0 Fix crashes with indirect count draws in secondary command buffers
* We need to patch the event count in both primary and secondary command buffers
  in this case
2020-03-19 17:16:19 +00:00
baldurk f427a7ce02 Test that repeated redundant calls for spin-sync aren't serialised
* If the application is calling e.g. vkGetFenceStatus() in a loop we don't want
  to serialise every call.
2020-02-03 18:18:17 +00:00
baldurk 83f0398aa6 Add test to parameter zoo to catch descriptor referencing resources 2020-01-27 20:45:08 +00:00
baldurk 6c68576707 Add workaround for strange systems with difficult visualinfo setups 2020-01-22 19:05:53 +00:00
baldurk 2916c0f9f7 Update copyright years to 2020 2020-01-06 16:20:45 +00:00
baldurk 08ccab2a7f Prefer VK_LAYER_KHRONOS_validation for debugging if available 2019-12-13 11:09:57 +00:00
baldurk 6bbf4cb209 Allow fallback to glslangValidator in tests for compiling SPIR-V 2019-12-12 17:58:52 +00:00
baldurk 31c962bf51 Free undefined image in VK_Image_layouts test
* The free() function should also destroy the image/buffer not just free the
  memory.
2019-11-26 23:42:16 +00:00
baldurk c547937597 Add helpers for tests checking PCI vendorIDs/driver versions 2019-11-25 23:36:45 +00:00
baldurk f35e082228 Keep track of VmaAllocation for each image/buffer and free it
* VMA requires us to free each suballocation even on shutdown where we just want
  to block-free
2019-11-25 23:36:44 +00:00
baldurk 284996ae2c Check for errors on queue submissions 2019-11-25 23:36:44 +00:00
baldurk 187b1a6e47 Add ability to pass macros to SPIR-V compilation in tests 2019-11-22 14:56:51 +00:00
baldurk 53569e56bb Allow AllocatedBuffer/AllocatedImage to be copied around in vulkan tests
* Instead of tracking their lifetime with that object, we move the lifetime
  tracking into the parent VulkanGraphicsTest and destroy them all at the end. A
  single handle can optionally be free'd on its own.
2019-11-22 14:56:51 +00:00
baldurk 16dace3d48 Fix tests running on 32-bit 2019-10-01 17:59:01 +01:00
baldurk aed3d5fe4f Add naming overload for VkSampler in tests 2019-09-30 16:30:40 +01:00
baldurk c761f675c4 Add test that SPIR-V 1.3 shaders are disassembled, reflected, and edited 2019-09-04 14:33:13 +01:00
baldurk c9e668cdfc Create highest vulkan instance possible in tests, and save version 2019-09-04 13:17:11 +01:00
baldurk 0c4c710170 Don't re-check fences within the same expire pass
* If we check a fence each time it's referenced, we risk getting a different
  answer the second time we check and expiring it too early.
2019-08-14 14:15:51 +01:00
baldurk 24107ce4ce Don't require depthClamp in vulkan tests unnecessarily 2019-08-14 11:03:58 +01:00
baldurk d03fd1dd25 Fix support for arrays-of-struct vertex outputs. Closes #1438 2019-07-04 16:28:15 +01:00
baldurk 3c4dbaca30 Factor out window-specific and related resources separately in tests
* This will let us run multiple windows (and multiple threads) relatively
  easily.
* The hammer is fairly big, we move some things into the window that don't need
  to be there necessarily if we have multiple windows on a single thread, but it
  keeps things simple.
2019-05-24 19:57:13 +01:00
baldurk 42f074187c Fix some validation issues with tests 2019-05-24 19:17:11 +01:00
baldurk ec8564642a Refactor demo API test initialisation order
* Instead of only doing a very lightweight check to see if the API is available
  up-front, we now share the API initialisation among all API tests far enough
  to determine availability of extensions, features, etc. Then we can precisely
  determine which tests are available and which aren't before running.
2019-05-23 13:18:37 +01:00
baldurk ccd5ba218e Explicitly shutdown only the running test, instead of using destructors
* The tests are global objects so there's a potential ordering issue of
  destroying these tests after RenderDoc's global destructors have run.
2019-04-04 15:50:34 +01:00
baldurk 043fcda299 Fix check for external glslc 2019-04-04 15:50:34 +01:00
baldurk 4c3a68d866 Add a couple of setName overloads in VulkanGraphicsTest 2019-04-01 15:23:27 +01:00
baldurk 1cada82d2f Use VK_EXT_debug_utils in testbed program 2019-04-01 15:23:27 +01:00
baldurk bbc2f47fa8 Centralise generation of buffer format strings for struct buffers
* We also fix a number of issues that could cause incorrect formats to be
  generated.
* Test cases added for D3D11/GL/Vulkan to test different struct types. These
  aren't automated at the moment because most of the code they're testing is in
  the UI itself.
2019-02-13 18:50:56 +00:00
baldurk 86ff87863e Update copyright years to 2019 2019-02-01 18:32:13 +00:00
baldurk b08fb8c9b5 Allow specifying the pNext struct passed to vkCreateDevice 2018-12-19 15:57:12 +00:00
baldurk bb9ff1ccb7 Adjust GL SPIR-V shader test demo to do opengl-unique things
* E.g. not specify a binding and let that be done at runtime, or global
  variables not in constant buffers.
2018-12-17 17:10:35 +00:00