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
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