Commit Graph

269 Commits

Author SHA1 Message Date
baldurk fd2ae37a8b Test overlay rendering with separable shader programs 2022-06-17 17:27:30 +01:00
baldurk 6a006625f2 Ignore rasterizerDiscardEnable == true if it is dynamic. Closes #2617
* Normally we have to ignore subsequent states as potentially garbage pointers
  if discard is enabled, but when it's dynamic state we have to ignore its
  valid.
2022-06-17 10:46:14 +01:00
baldurk a351fc14f4 Fix tests for API changes 2022-05-24 12:48:17 +01:00
baldurk e925688913 Fix use-after-free when freeing vulkan postponed memory. Closes #2573 2022-05-23 13:56:05 +01:00
baldurk 8566d55650 Add missing value check in GL_CBuffer_Zoo 2022-05-20 14:15:31 +01:00
baldurk cef00a102b Add struct VarType and combine flags into single field
* This is not a space saving right now, but allows more flags to be added
  without adding more storage.
2022-05-20 13:37:25 +01:00
baldurk 4953adde03 Add a test of KHR_Dynamic_Rendering
* Not all possible interactions are currently tested, but at least the ones that
  have been broken in the past.
2022-05-03 18:47:27 +01:00
baldurk cfdbc3da57 Remove outdated experimental feature check 2022-05-03 15:30:47 +01:00
baldurk a9562c87f5 Test that discard patterns don't disturb bound state on vulkan 2022-05-03 15:30:20 +01:00
baldurk 96a7639c2e Add test of flow control constructs in D3D11 shader debugging 2022-05-03 14:06:07 +01:00
baldurk 04c62f9595 Add a test debugging shaders on D3D12 with banned flags in the root sig 2022-04-28 14:19:38 +01:00
baldurk 7066692262 Test that sampler heaps are represented in structured data properly
* This is a test of a specific case of lazy serialisation, but in particular
  D3D12 descriptors do some aliasing tricks for types to compress the data, so
  repeated serialisation needs to be safe.
2022-04-28 13:39:37 +01:00
baldurk 8aa0390948 Add string messages to returned result codes to display to user
* Most of the main entry points that can fail with relevant reasons now has a
  way of specifying a message to return with it. This message can be displayed
  to the user to give more information or context about an error.
2022-04-26 16:21:54 +01:00
Benoit Dumesnil 2ace1fe84d Add test of D3D12 bindless feedback for shadermodel 6.6. 2022-03-21 11:30:47 +00:00
Benoit Dumesnil e47450a43b Fix test of D3D12 bindless feedback.
Fix a typo in a comment in D3D12_Descriptor_Indexing.py.
Fix UAV using a typed buffer view instead of a structured buffer view.
Fix SetDescriptorHeaps being called before ClearUnorderedAccessViewUint
2022-03-21 11:30:47 +00:00
baldurk bd2659a6ab Increase number of captures on GL_Leak_Check test to match other APIs 2021-11-19 12:11:41 +00:00
baldurk 2498043374 Add test of standard counters 2021-11-19 11:56:36 +00:00
baldurk 0f4433f658 Add a test of multiple entry points in a SPIR-V module 2021-11-16 16:27:36 +00:00
baldurk 751c80af85 Don't use spec constant ID as offset for storage. Closes #2413
* This requires a linear search to get the offset for a constant by ID, but
  hopefully no-one will have so many constants that this becomes an issue.
2021-11-16 15:01:42 +00:00
baldurk 37fd59313b Add a test of vulkan shader debug printf 2021-11-15 16:14:00 +00:00
baldurk 352821026e Add tests that frame 0 can be captured and contains correct events 2021-11-11 14:43:17 +00:00
baldurk 7a4e68959f Support VK_EXT_load_store_op_none & color_write_enable. Closes #2363
* These are added together because VK_EXT_load_store_op_none is easier to test
  in a realistic fashion using VK_EXT_color_write_enable
2021-10-22 14:48:58 +01:00
baldurk 3cec544508 Patch quad overdraw shaders on D3D12 to follow rules. Closes #2356
* This is a stupid requirement as the quad overdraw shader doesn't use any
  interpolators, but the D3D12 runtime complains and refuses to create a PSO
  unless the PS has a matching signature. This works as long as the position was
  the first output from the previous stage, but if it isn't the PSO fails to
  create.
* To fix this, we take the existing shader and patch it by grafting the output
  signature from the last stage over onto the input signature, and patching up
  where the position is.
2021-10-20 17:22:43 +01:00
baldurk 97dfda3c3c Fix use of GetCBufferVariableContents in tests 2021-10-18 10:20:08 +01:00
baldurk 62d6ffaec2 Enable DXIL bindless feedback test 2021-09-27 12:26:22 +01:00
baldurk a76aa1dede Update RGA devices list to include RDNA2
* We also drop everything gfx804 to keep the device list from being too bloated,
  as well as AMD planning to remove support for these devices soon.
2021-08-18 20:12:07 +01:00
baldurk 50219acaf9 Fix crash when tests are run on linux 2021-07-28 11:37:14 +01:00
baldurk a3a0aae660 Handle fixed index lookups in array resources 2021-07-19 16:51:50 +01:00
baldurk abe0787bb2 Add test of D3D12 bindless feedback 2021-07-15 16:41:23 +01:00
baldurk 23fe6ae67f Remove SM5.0 test for D3D12 AMD shader extensions
* This seems not to work and is not officially supported so there's little value
  in testing it.
2021-07-05 14:20:48 +01:00
baldurk a1b5f01159 Fix tests with references to removed properties 2021-07-05 14:20:48 +01:00
baldurk 979f5244e2 Make demos timeout more generous for leak check tests
* It's fine as-is in release, but in development builds it can take almost a
  minute to reach that frame and capture.
2021-07-05 14:20:48 +01:00
baldurk 634a8c381a Update test scripts to latest APIs and behaviour changes 2021-07-01 15:15:05 +01:00
baldurk 7149302680 Rename 'draw' or 'drawcall' to action
* There's not a good accepted terminology for this kind of event, and for
  historical reasons 'drawcall' has been the accepted term, even though
  that can be quite confusing when a dispatch or a copy is a 'drawcall'.
* This is particularly highlighted by the event browser filters where
  $draw() includes draws and dispatches, but $dispatch() only includes
  dispatches, it's hard to intuitively understand why $draw() matches all
  of these calls.
* As a result we've defined the term 'action' to cover these types of
  events in the same way that we defined 'event' in the first place to
  mean a single atomic API call.
2021-07-01 15:15:05 +01:00
thisisjimmyfb f64cba8e91 Add test to show drawcall count is incorrect 2021-06-26 09:28:42 +01:00
baldurk 732ccb2d89 Fix D3D12_AMD_Shader_Extensions test for DXIL support
* We can't build with -O0, it has to be at least -O1 for DXIL. We also need -Ges
  / strictness on both builds.
2021-05-10 17:02:49 +01:00
baldurk efd2a50a3a Use python datetime for calculating durations, not time.time() 2021-05-04 14:12:03 +01:00
baldurk 2af11c5395 Add test of AMD extensions in D3D12 2021-04-30 16:41:17 +01:00
baldurk 9d6fe09b62 Test vulkan clear-before-draw overlay works when bindless feedback runs
* The first time a draw is selected bindless feedback runs, ensure the clear-
  before-draw overlay works even then. This is a little bit of a hack but it
  tests for a known issue.
2021-04-30 13:20:45 +01:00
baldurk 7ff6300843 Add test of D3D12 VRS features 2021-04-29 16:18:06 +01:00
baldurk 477a1e927b Add VK_Robustness2 test to autotests and add push descriptor interaction 2021-04-16 14:19:30 +01:00
baldurk 47e13a30d4 Add test of GL renderbuffer variants 2021-04-16 13:31:08 +01:00
baldurk dc44d6c271 Make doubles vertex attribute test optional for radv missing support 2021-03-22 18:37:10 +00:00
Jake Turner 67e277717c Added test failure if fail to find the draw marker 2021-03-14 11:17:31 +00:00
baldurk d6e88ae4fa Remove redundant callstack member in APIEvent
* We already link to the chunk index and the chunk metadata contains the
  callstack, there's no need for a duplicate copy when there may be many
  APIEvents in a capture
2021-02-24 13:52:07 +00:00
baldurk 30dd13feb8 Pull index byte width and topology out of drawcall state
* These are treated as state on most APIs, only GL treats it as a drawcall
  parameter.
2021-02-24 13:52:07 +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 28bf213382 Test APIs where scissor can be disabled doesn't affect overlays 2021-02-01 13:14:28 +00:00
baldurk cf3dc150cb Test compute bindless feedback on vulkan 2021-02-01 11:55:54 +00:00