Commit Graph
102 Commits
Author SHA1 Message Date
baldurk d56ea92fd5 Add some helpers for querying and reloading tests 2026-09-11 21:17:18 +01:00
baldurk 7faac83b00 Add a helper and context for tracking the last pixel pick 2026-09-11 21:17:18 +01:00
baldurk ff7e147b39 Allow setting a capture context if tests are run in UI
* This means we can keep the UI in sync with things like resource replacements.
2026-09-11 21:17:18 +01:00
baldurk ca682d6d34 Use context helpers for pixel debugging 2026-09-11 21:17:17 +01:00
baldurk e6948a8c7e Check for degenerate debug traces in process_trace 2026-09-11 21:17:17 +01:00
baldurk 191597b27c Don't allow find_*_source_var to return None
* Almost all callers expect a return value, so better to raise an exception
  inside and make it non-optional return
2026-09-11 21:17:17 +01:00
baldurk ae019398cb Remove checks for shader debuggability
* All APIs now support shader debugging by default and we assume/require all
  shaders in tests to be debuggable.
2026-09-11 21:17:17 +01:00
baldurk 04af66d71f Check for failed ShaderDebugTrace centrally
* We don't expect the debug to fail entirely and if it does we can throw a test
  failure
2026-09-11 21:17:16 +01:00
baldurk 031212e916 Use context helpers for vertex debugging 2026-09-11 21:17:16 +01:00
baldurk d9c72e7651 Include context information for pixel history and shader debug attempts 2026-09-11 21:17:16 +01:00
baldurk 2a0989ba9a Use local helper function for setting current EID
* This lets the testcase track the current EID and print it when a failure
  happens
2026-09-11 19:19:27 +01:00
baldurk d7cbb743e4 Set more tests to use common check_vertex_debug() helper 2026-09-11 19:19:26 +01:00
baldurk fc27cf0deb Add ability to run tests in parallel 2026-09-11 19:19:26 +01:00
baldurk 748e089b15 Fix remaining static analysis identified issues in python test code
* This includes:
  - Incorrect comparisons
  - Missing type annotations where it can't be inferred
  - Variable shadowing and bad use
  - Unused imports
  - asserts for non-None on types
* Passes clean on strict pyright checking except for
  `reportMissingParameterType`, `reportUnusedVariable`, and
  `reportOptionalMemberAccess` which are all too spammy and low value to be
  worth addressing.
2026-09-11 15:04:05 +01:00
baldurk 12636a1607 Switch from str.format to f-strings in tests
* These were available for python 3.6 too so was never any reason not to use
  them except not being aware they existed.
2026-09-11 15:04:04 +01:00
baldurk 796b68c1a8 Unify code to check mesh/task data against reference
* Also change the task payload data layout to match meshes, with one 'vertex'
  (payload) per task thread
2026-09-11 15:04:04 +01:00
baldurk ec36d155bc Remove redundant type annotations
* These come from long ago when using PyCharm with not as good type checking and
  with renderdoc module stubs that were incomplete so needed help identifying
  types.
2026-09-11 15:04:04 +01:00
baldurk 79a5086a0c Handle assert failures in logger directly, remove TestCase.check
* assert is handled specially by the type checker so we don't want to have
  duplicate self.check / assert
* The original reason for TestCase.check was to print the assertion message but
  this can be handled by checking for the AssertionError exception
2026-09-11 15:04:03 +01:00
baldurk fd55020165 Add helper for checking vertex debugging matches postvs
* There are a few 'extras' here as the uses aren't quite uniform, but they are
  close enough it makes sense to have a common helper
2026-09-11 15:04:03 +01:00
Jake Turner 6df99e4d94 Extend python helper functions for D3D12 indirect action names 2026-07-30 16:35:53 +01:00
Jake Turner 4aa00a2bfa Add python helper functions to check indirect action names 2026-07-22 05:41:09 +01:00
Jake Turner 0f3d7965e3 Validate EIDs by default during python autotests
Fail test if the EIDs are not valid
2026-06-01 11:23:33 +01:00
baldurk ddc475d729 Use raw strings for regexs in python tests 2026-04-30 15:55:27 +01:00
Jake Turner fcebc9cebb Make a copy of the RootActions in TestCase.validate_eventids()
Otherwise the next call to controller.GetRootActions() will return an empty list
2026-04-28 13:12:18 +01:00
Jake Turner d0b69c7034 Add Python test helper validate_eventids()
Called when loading captures in Iter_Test and Repeat_Load

Checks the consistency of EventIds:

Walk the actions to find all the referenced EventId's:
- Error if any EventId is duplicated
- Error if the EventId's are not contiguous (with no gaps)
2026-04-24 15:50:40 +01:00
Jake Turner e9bce39efc Ignore empty before/after for resource ShaderVariables in validate_trace 2026-04-14 13:26:29 +01:00
Jake Turner 1bd80b13cc Extend VK_Mesh_Shader tests for struct arrays, struct in a payload 2026-02-04 13:25:18 +13:00
Jake Turner 0bec9e0a0c Add struct array to VK_Mesh_Shader task out 2026-01-29 09:16:48 +13:00
Jake Turner ccbb516610 Simplify DXIL Disassembler/Debugger SSA ID name strings and aliases
Store SSA ID name strings in a container which is shared between the disassembler and the debugger.
The SSA ID name strings are guaranteed to be unique by appending the SSA ID value.

Do not use resource names for SSA ID names, only show resource names when a DXIL handle is created i.e. DXOp::CreateHandle, DXOp::CreateHandleFromBinding & DXOp::CreateHandleFromHeap

This means the debugger now has a unique name for each ShaderVariable generated.

Revert the ShaderViewer consistency changes which were only required because the DXIL debugger did not generate unique names for ShaderVariables.
2025-11-13 13:10:44 +13:00
Jake Turner f858b2320f Extend D3D12_Shader_DebugData_Zoo tests to include matrix
Check matrix in the outputs from Vertex Shader
Check matrix in the inputs to Pixel Shader
Check matrix debug data source values from debugger trace
2025-11-12 11:10:32 +13:00
Jake Turner c534b41eb6 Tune the ShaderVariable consistency checks for resources
Do not check before/after equals existing value for ReadOnlyResource and ReadWriteResource
In the DXIL debugger for resources the same SSA ID might have different names
2025-11-11 10:53:15 +13:00
Jake Turner 9c31e0131e Fix validate_trace() being called from generate_full_trace() 2025-10-23 09:15:42 +01:00
Jake Turner 196ca9bae2 Run validate_trace() as part of generate_full_trace()
Ensure the trace is valid before running comparisons on it
2025-10-10 12:58:32 +01:00
Jake Turner f12aa91ba2 Python helpers to generate and check a full trace from shader debug 2025-09-24 14:13:59 +01:00
baldurk 3e70a37fac Add test of descriptor buffer 2025-07-09 09:57:56 +01:00
thisisjimmyfb 29207a7333 Fix VK_Leak_Check for Android
RemoteServer timedout due to VK_Leak_Check taking too long before sending commands to remote server. Spawning a worker thread to keeping the remote server connection alive fixes the disconnection issue.
2025-06-19 11:45:04 +01:00
thisisjimmyfb b1d3123583 Remote Android and Linux test support part 1
Add remote server support to test framework
2025-06-19 11:45:04 +01:00
Jake Turner 962c1cdcf6 Enable Python shader trace validation by default 2025-05-19 16:57:22 +01:00
Jake Turner 9523f98b8a Python implementation of ShaderDebugTrace validation
Similar to the validation that is performed in ShaderViewer UI
Disabled by default pass True to process_trace to enable the validation
Includes validate_shadervariable() and shadervariable_equal()
2025-05-19 16:44:45 +01:00
Jake Turner 258ab5b6e3 Change test helper to just check for asserts (not errors)
Setting the Vulkan layer produces two errors
2025-04-22 14:31:43 +01:00
Jake Turner 1c4520534d new helper function in testcase.py to check RD log for Asserts/Errors
def check_renderdoc_log(self, asserts: bool = True, errors: bool = True):
2025-04-22 12:33:50 +01:00
Jake Turner fa9bc127b1 Add early return test case to D3D12_Shader_DebugData
Change python to search backwards through the instruction info to find the value for a source variable
2025-04-02 08:39:49 +01:00
Jake Turner 7eef20b3db Added demos test VK_Mesh_Shader
Similar on d3d12_mesh_shader test, move some helper code from d3d12_mesh_shader python to testcase.py to allow for sharing with vk_mesh_shader python
2025-03-20 13:52:17 +00:00
Jake Turner 5120723135 Add Shader source variable helper functions to rdtest
parse_shader_var_type()
get_source_shader_var_value()

moved out from D3D12_Shader_Debug_Zoo
2025-03-06 13:34:50 +00:00
baldurk cfefa5d5ef Add a test for new group ops 2025-02-10 17:52:31 +00:00
Jake Turner 84f6799444 Improve testcase _find_action
Search for the action with the closest EID to the request
Previously it would return the first action that was larger than the EID
2024-11-07 15:23:31 +00:00
Jake Turner 84786aea20 Demos test D3D12_Shader_Mesh 2024-07-24 13:21:57 +01:00
baldurk 9de4a79859 Update tests to new descriptor interface 2024-04-10 18:58:52 +01:00
baldurk 69c1990035 Fix handling of descriptor feedback in iterating arrays 2022-11-21 15:22:43 +00: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