Commit Graph
402 Commits
Author SHA1 Message Date
baldurk 178b733001 Add helper for loading a shader module from disk in tests 2024-09-09 14:45:30 +01:00
baldurk 01384c4d42 Update vulkan headers to 1.3.288
* Add support for VK_KHR_shader_relaxed_extended_instruction which is trivially
  supportable
2024-06-24 12:48:13 +01:00
Jake Turner 141354a2a4 Extended VK_KHR_Buffer_Address test to cover #3346
One extra draw from GPU memory which doesn't change and is unmapped during the draw loop
2024-06-11 12:05:27 +01:00
baldurk 78e84aa544 Don't crash on empty descriptor sets with no bindings 2024-04-16 20:03:54 +01:00
baldurk 9a18e871e5 Add testing of aliased bindings with descriptor feedback. Refs #3288 2024-04-10 18:58:53 +01:00
baldurk 1dd1ba9ea3 Fix some validation errors in VK_Graphics_Pipeline test 2024-04-02 18:01:17 +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
Jake Turner b36b7cf6b8 Vulkan Multi-view test
Vertex shader output Red for view 0, Green for view 1, fragment shader does not use viewIndex.
Fragment shader output Red for view 0, Green for view 1, vertex shader does not use viewIndex.
Geometry shader output Red for view 0, Green for view 1, vertex and fragment shader do not use viewIndex.

Python checks vertex and pixel shader debug output against replay rendering output
2024-03-13 07:58:48 +00:00
Jake Turner 5516f67227 Vk Tests added vkh::RenderPassCreator::next() 2024-03-13 07:58:48 +00:00
baldurk 52cfb0e083 Update Vulkan headers to latest, support trivially promoted exts
* We handle support for trivially supported exts like KHR_index_type_uint8 and
  KHR_calibrated_timestamps as it would be more churn and work to temporarily
  make them unsupported, given how they are almost entirely just aliased.
2024-02-13 12:37:05 +00:00
baldurk 9f4f0e6aa1 Update copyright years to 2024 2024-02-12 11:04:52 +00:00
Jake Turner 3150a1028e Mac compile warning/errors in tests project 2024-01-29 18:13:26 +00:00
Jake Turner 7b1527e3ac Fix release compile error in tests project 2024-01-23 15:28:39 +00:00
Jake Turner b23e9f6b37 SPIRV KHR BDA Tests added to vk_shader_debug_zoo
Load buffer address from push constants as a uvec2 and bitcast to a pointer
Load vec4 from the buffer address pointer
Bitcast uint2 address to a pointer and load from the pointer
OpPtrAccessChain : float[] : ArrayStride 4
OpPtrAccessChain : float[] : ArrayStride 8
OpPtrAccessChain : float[] : ArrayStride 12
Convert u64 address to a pointer and load from the pointer
Convert u64 address to a pointer and back to a u64 address, load from the address
Arithmetic on a u64 address then convert u64 address to a pointer and load from the pointer
Generate a u64 address using arithmetic on two u32 values and load from the address
2024-01-17 08:24:51 +00:00
Jake Turner 932d1b1754 Basic Test for VK_KHR_Buffer_Address
Compare the pixel shader debugger result against the GPU rendered output
Compare the vertex shader debugger results against the postVS output
2024-01-17 08:24:51 +00:00
Jake Turner 8c5cbbecdf Depth overlay tests include a shader with discard 2024-01-11 14:42:25 +00:00
Jake Turner 8b3cfc59eb Tests: SPIR-V Debugger Bitcast tests vector to/from scalar 2024-01-09 12:44:14 +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 baa5999582 Extend Vk Pixel History tests
Check the post mod stencil at pixel location 110,100
Check the post mod stencil is unknown at pixel location 275, 260 for fragment zero of a multi-fragment event

Validate that in a fragment event the postMod stencil value should be unknown (-1 or -2)
2023-12-31 08:41:23 +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
Jake Turner 5eb3778b9d Basic test for shader debugger out of bounds matrix lookup 2023-12-19 16:09:31 +00:00
Jake Turner 18a28eb8dc SPIR-V shader debug OpSwitch tests
Test with selector and literal of different types "int", "uint", "long", "ulong"
2023-12-13 10:24:47 +00:00
Jake Turner 466cc148cf VK Overlay Test clear a stencil rectangle to one 2023-12-13 10:24:31 +00:00
baldurk f8bbe1ed4f 32-bit compile fixes for demos project 2023-12-11 11:00:12 +00:00
Jake Turner dd0c888d11 Extend Overlay tests to include shader exported depth scenario 2023-12-05 15:26:57 +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 01820aad82 Donn't set rasterization state to NULL for pre-rasterization shaders 2023-11-30 13:29:59 +00:00
baldurk 65a13b1a6d Fix memory corruption in VK_Parameter_Zoo test 2023-11-28 12:04:26 +00:00
William Pearson 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
Jake Turner b19665212c Fix demos compile error on Linux & Android 2023-11-05 13:10:53 +00:00
Jake Turner 3fbf060894 Test for very large variable sized descriptor binding
New Binding 3
Initial size is UINT32_MAX
Updated to be sized DESC_ARRAY3_SIZE
Used in the shader to ensure the binding is referenced

Stress tests the FetchShaderFeedback code when it computes the maximum size of feedbackStorageSize.
2023-11-01 14:53:06 +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 b6470b03de Add a delay after Compute_Only tests to allow capture to be found 2023-10-25 17:56:38 +01:00
Eric Long f36d8a3b23 RISC-V support
With some addition to macros the project is able to build on riscv64
machine.

plthook has added RISC-V support upstream [1]. However upstream has
changed their code quite a bit, so I just modified the current vendored
version.

[1]: https://github.com/kubo/plthook/commit/a564738a4707fc5eb4d388b9e97eeab51b8c9d56
2023-09-29 17:26:11 +01:00
baldurk 81cbd7f404 Add delay to empty capture tests to ensure the capture propagates 2023-09-20 12:06:21 +01:00
baldurk 92f4aeacde Fix compile error on some clangs with non-const string literals 2023-09-13 16:25:09 +01:00
baldurk 1bfe6d1492 Add dedicated test for VK_Counters so GPU duration isn't degenerate
* Some cards run it so fast that the triangle takes "0" microseconds
2023-09-12 21:53:23 +01:00
Jake Turner 8459229441 Extend Overlay tests to handle more depth stencil formats : Vk
D32_S8, D24_S8, D32, D24, D16
2023-09-08 22:38:01 +01:00
Jake Turner 163f2ff747 Fix validation error in Vk_Overlay_Test 2023-09-07 09:48:57 +01:00
baldurk 9d39b8e1a8 Reformat code for clang-format 15 2023-09-05 11:02:08 +01:00
William Pearson 71e886cecc Add demo/test for many primitives hitting the same pixel in one drawcall 2023-08-09 10:58:04 +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 5118f08e23 Update Vulkan & SPIR-V headers to latest 2023-06-15 13:56:10 +01:00
baldurk 7f8e14fb65 Add some helpers to make minimal templates for each autotest API 2023-06-15 11:25:27 +01:00
baldurk c353f6fe6d Add memory readback microbenchmark 2023-03-23 16:16:03 +00:00
baldurk 448b78ca68 Bare bones port of demos project to android 2023-03-23 16:16:03 +00:00
baldurk 38afb7c8ad Fix handling of S8 multisampled textures. Closes #2883 2023-03-14 16:32:06 +00:00
baldurk d47e79ae07 Update copyright years to 2023 2023-02-01 12:23:32 +00:00
baldurk fe4a79054f Update vulkan headers to latest 2023-01-17 14:15:08 +00:00