Commit Graph
51 Commits
Author SHA1 Message Date
baldurk a05fd08a1c Add support for VK_KHR_maintenance6. Closes #3602 2025-08-25 11:36:01 +01:00
baldurk 2322e165de Update copyright years to 2025 2025-03-14 18:54:37 +00:00
baldurk aa30ac2c10 Don't overlap storage with multiple inline UBO updates in one template
* Previously we were writing the inline UBO data to the same byte storage
  meaning the last update's data would write over all updates.
2024-12-09 16:19:20 +00:00
baldurk 8a6c3a73f7 Handle garbage descriptor set in vkCmdPushDescriptorSetKHR. Closes #3461 2024-10-25 10:37:38 +01:00
baldurk 78e84aa544 Don't crash on empty descriptor sets with no bindings 2024-04-16 20:03:54 +01:00
baldurk 9f4f0e6aa1 Update copyright years to 2024 2024-02-12 11:04:52 +00:00
baldurk 0b18cefc5f Specify correct library flag when creating partial pipelines 2023-11-30 14:38:48 +00:00
baldurk 10bdf616a7 Fix memory corruption properly in test 2023-11-30 13:30:00 +00:00
baldurk 65a13b1a6d Fix memory corruption in VK_Parameter_Zoo test 2023-11-28 12:04:26 +00:00
William PearsonandBaldur Karlsson 9cf30b190e Fix crash when descriptor update template uses unreferenced layout
It is possible for the VkDescriptorUpdateTemplateCreateInfo to have its
descriptorSetLayout or pipelineLayout be the only reference to the
corresponding object, as vkCmdPushDescriptorSetWithTemplateKHR and
vkUpdateDescriptorSetWithTemplate only require that the actual layout
matches/is compatible with the one used by the template. Before, there
was no dependency from the update template to the layout, so if it was
the sole use of a layout, the layout would not be saved in the capture,
resulting in a crash during playback.

This change also modifies the vk_parameter_zoo to test this case. With
those modifications, the change to vk_descriptor_funcs is required to
prevent the crash. Note that on my machine, I needed to comment out
other parts of vk_parameter_zoo, or else it would crash (even when
not run under renderdoc) due to driver issues.

For reference:

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkCmdPushDescriptorSetWithTemplateKHR.html#VUID-vkCmdPushDescriptorSetWithTemplateKHR-layout-07993
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkUpdateDescriptorSetWithTemplate.html#VUID-vkUpdateDescriptorSetWithTemplate-pData-01685
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDescriptorUpdateTemplateCreateInfoKHR.html#_members
2023-11-09 10:15:00 +00:00
baldurk dd4e0d44ad Do two-pass processing of pNext chains for strict validity. Closes #3093
* We first need to do a pass to find extension structs that affect validity of
  pointers (whether they're ignored or not), then do a pass to process.
2023-10-25 17:56:38 +01:00
baldurk 9d39b8e1a8 Reformat code for clang-format 15 2023-09-05 11:02:08 +01:00
baldurk c353f6fe6d Add memory readback microbenchmark 2023-03-23 16:16:03 +00:00
baldurk d47e79ae07 Update copyright years to 2023 2023-02-01 12:23:32 +00:00
baldurk 3ec6986ac4 Test that descriptor arrays of dynamic UBOs have offsets replayed 2022-11-18 14:21:14 +00:00
baldurk 62bfec8442 Test empty submits are properly processed 2022-11-18 12:37:45 +00:00
baldurk f2f77716ad Test that vkEnumeratePhysicalDevices correctly handles undersized array 2022-11-17 18:22:57 +00:00
baldurk 9d18db67a7 Fix some edge case pNext struct usages. Closes #2749 2022-10-12 13:04:34 +01:00
baldurk 1f1f1fae2d Fix some issues with tests found running on linux 2022-05-26 13:43:46 +01:00
baldurk fcdea67879 Update copyright years to 2022 2022-02-17 17:38:32 +00:00
Jake TurnerandBaldur Karlsson b3f57d1427 Fix Vulkan Validation Layer error when running VK_Parameter_Zoo
refpushtempl desscriptor update template was not deleted before shutdown
2021-07-07 09:59:22 +01:00
baldurk 55a6d8092b Test that memory bound via vkBindBufferMemroy2 is properly captured 2021-04-30 13:44:52 +01:00
baldurk 827a48fe57 Check sampler validity against immutable samplers on serialise 2021-03-15 14:39:21 +00:00
baldurk 92192ef348 Add test to ensure vkBindBufferMemory2 can be split up 2021-01-13 14:48:40 +00:00
baldurk 026da176bb Update copyright years to 2021 2021-01-13 13:56:10 +00:00
baldurk 26f680f632 Check that sampler updates to immutable sampler descriptors are ignored 2020-10-21 14:57:42 +01:00
baldurk 18a7e3c05c We shouldn't return physical device entry points in vkGetDeviceProcAddr
* The spec says we only return a function pointer for device or device-child
  functions. In practice the loader wraps instances and physical devices so when
  calling a direct GDPA returned function the loader won't unwrap it so we won't
  get our proper wrapped objects and will crash.
2020-09-04 10:32:17 +01:00
baldurk 3e100109da Test destroying/freeing NULL handles, fix validation errors 2020-08-20 17:02:03 +01:00
baldurk 624da2fb25 Add test that we don't crash on draws with new viewports 2020-07-27 16:17:13 +01:00
baldurk 7927ff2e40 Add tests of shaders that don't use GLSL.450 & have 0 stageFlags binds 2020-07-15 15:34:37 +01:00
baldurk 5c57493855 Share common shader source on vulkan 2020-07-15 14:05:20 +01:00
baldurk ff62ab501c Add helpers for creating samplers 2020-05-27 22:38:04 +01:00
baldurk 9c0423506d Don't test timeline semaphore if it's not supported 2020-04-30 18:15:28 +01:00
baldurk 3ef67d6647 Test passing NULL in object names/labels 2020-04-21 17:09:33 +01:00
baldurk f4e141e843 Handle invalid pointers in create info when viewport state is dynamic 2020-04-15 20:33:56 +01:00
baldurk a56af589d9 Don't modify descriptor update template while writing. Closes #1765 2020-03-09 17:36:56 +00:00
baldurk b0f0dad7fd Test that we can capture and replay VkPhysicalDeviceVulkan12Features
* This ensure we don't accidentally enable any features that aren't supported.
2020-03-05 19:35:45 +00:00
baldurk 06570ea7ad Remove backbuffer comparisons from test suite, simplify default triangle
* It's not particularly scalable and can be brittle to driver changes, and we
  can use targeted specific pixel tests to check what we really want - to see if
  the output has rendered correctly.
* Overlay tests still check files directly - this is a future refactor to
  remove.
2020-02-11 17:11:33 +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 4df8ce7a02 Test VK_EXT_tooling_info in VK_Parameter_Zoo not VK_Simple_Triangle
* Keep the simple triangle really the bare minimum.
2020-02-03 18:18:17 +00:00
baldurk f18cf01671 test optional EXT_transform_feedback parameters in VK_Parameter_Zoo 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 2916c0f9f7 Update copyright years to 2020 2020-01-06 16:20:45 +00:00
baldurk 848b58826d Ensure we ignore unused parameters in DescriptorUpdateTemplateCreateInfo 2019-12-12 17:58:52 +00:00
baldurk 0773f13949 Ensure re-used handles in descriptor sets don't cause problems
* Previously if a handle was reused, and then a stale descriptor referencing the
  old handle was removed it would remove the *new* object from the list of
  referenced resources. This could cause a resource to be not included in a
  capture if nothing else added a new reference.
2019-12-12 17:58:52 +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 b6c9b6298f Only read pImmutableSamplers pointer for sampler descriptors 2019-10-28 11:17:54 +00:00
baldurk 812e601a88 Ignore sampler updates when descset has immutable samplers. Closes #1528 2019-09-23 16:48:04 +01:00
baldurk 6d282f90d9 rename TEST macro to un-confused visual assist
* Visual assist comes with a pre-defined interpretation of TEST() for
  googletest, which conflicts with ours. We can't seem to override it with a
  va_stdafx.h even
2019-09-17 12:40:00 +01:00
baldurk a6aa0ac5d0 Handle other ignored garbage substates in vulkan graphics PSO creation 2019-09-17 12:02:37 +01:00