Commit Graph

369 Commits

Author SHA1 Message Date
Steve Karolewics dfbe7fb6bf Remove primitive ID usage from pixel shader debugging when invalid
SV_PrimitiveID is only valid as a pixel shader input if there's either
no geometry shader, or the geometry shader emits SV_PrimitiveID. With
D3D11, the debug layer will complain but rendering will proceed. With
D3D12, the PSO fails to compile. For both APIs, pixel shader debugging
now checks whether this is true, and disables its usage if it isn't.
Added tests for various valid scenarios with SV_PrimitiveID.
2020-02-20 19:06:22 +00:00
baldurk 83d77ea543 Improve formatting of Iter_Test output 2020-02-18 19:18:51 +00:00
baldurk 7dd38b49d7 Update vulkan headers to 1.2.133, SPIR-V metadata to latest 2020-02-17 15:17:52 +00:00
Steve Karolewics 58b1186362 Fix resource bindings when reflection info is stripped
The logical identifiers, rather than shader registers, were used to
populate reflection info, causing the wrong slots in large descriptor
tables to be referenced for the pipeline state.
2020-02-14 10:39:28 +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 3e7273121f Fix numRows calculation in D3D12 texture zoo 2020-02-11 17:11:32 +00:00
baldurk a70be5bd98 Add missing sync in D3D12_Parameter_Zoo test 2020-02-11 17:11:32 +00:00
baldurk 76a88cc7a3 Add test of D3D12 render passes 2020-02-11 17:11:32 +00:00
Steve Karolewics 392d362ee8 Add a D3D12 test to exercise various resource mapping scenarios 2020-02-11 17:10:57 +00:00
Steve Karolewics ad69e791ad Add CBV support to D3D12ViewCreator 2020-02-11 17:10:57 +00:00
baldurk 40f4879496 Make debug pixel comparison epsilon slightly more forgiving 2020-02-06 17:58:42 +00:00
baldurk 511f82d897 Don't try to pixel debug for verifying depth output 2020-02-06 17:58:42 +00:00
baldurk c2e180ea28 Skip pixel debugging comparison in Iter_Test when writes are masked out 2020-02-06 17:58:42 +00:00
baldurk e012c82168 Update tests to use new interfaces 2020-02-06 17:58:42 +00:00
baldurk 530d7fbc12 Don't try to render triangle size for line or point draws 2020-02-05 15:17:46 +00:00
Steve Karolewics 67457bd784 Add a test for D3D12 shader debugging
This mimics the D3D11 shader debugging test, but performs the draws
twice - once with SM 5.0 and once with SM 5.1. The python test performs
the same checks as the D3D11 version, but is explicitly disabled since
D3D12 shader debugging is not yet enabled by default.
2020-02-04 19:11:17 +00:00
Steve Karolewics bd04112dd4 Add a non-shader-visible heap to D3D12ViewCreator for clearing UAVs 2020-02-04 19:11:17 +00:00
baldurk bb43ba45e3 Add test of newer resource creation methods in D3D12.4 2020-02-03 18:18:17 +00:00
baldurk 8bc4e4c719 Test that imageless framebuffer parameters are properly ignored
* This is kind of what VK_Parameter_Zoo is intended to test, but I don't want to
  add conditional extension tests in there unless there's nowhere else to put
  it, since it adds mental overhead to reading the code.
2020-02-03 18:18:17 +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 d7b61176c5 Don't save every queue creation in D3D12 device record
* Otherwise we try to create every queue that has ever existed on replay.
* Check for resource leaks in Resource_Lifetimes tests.
2020-02-03 18:18:17 +00:00
baldurk c3b6b6890e Add tests that shader ISA disasm works, including live driver output 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 d326d61b1e Add D3D12_Parameter_Zoo test to check edge-case parameters/interfaces 2020-02-03 18:18:17 +00:00
baldurk 09be5f4047 Fix structured export/import of initial states resource contents on GL 2020-02-03 18:18:16 +00:00
baldurk a98a8c49a7 Improve handling of multi-dimensional array input/outputs from shaders 2020-02-03 18:18:16 +00:00
Steve Karolewics 1dc4d5b15e Display the demos UI if argv[1] isn't a valid test 2020-02-03 18:18:03 +00:00
Steve Karolewics 9b72d79c06 UI improvements for the demos UI
Made the API filters inclusive, so that if any are checked, only the
selected ones are shown. If none are selected, then all tests are
shown as before. Moved the test name filter to the top pane, so that
it is always visible - before if you scrolled down in the test list,
it would be hidden. Added more room for test descriptions in the bottom
pane - long descriptions were previously truncated.
2020-01-31 20:08:25 +00:00
Steve Karolewics b2150e901f Fix D3D12 sharing test when the adapters used by D3D11/D3D12 differ
D3D11 may default to a different adapter than D3D12. For the sharing
test, both adapters must be D3D12 compatible. Tell D3D11 to use the
adapter that D3D12 is using to ensure compatibility.

Also fixed a memory leak in the test.
2020-01-31 20:08:25 +00:00
Steve Karolewics 2f7b260d39 Try creating a device with successive adapters until one succeeds.
On laptops with integrated+discrete adapters, adapter 0 may not
support D3D12, so a default create device call will fail. Adapters
other than the 0th one need to be specified explicitly.
2020-01-31 20:08:25 +00:00
baldurk b38cbc1b0c Add explicit functions to initialise and shutdown replay. Closes #1685
* It's required for replay applications to call InitialiseReplay() before doing
  any work, and to call ShutdownReplay() once they're finished.
* This lets us do more heavyweight shutdown work before global destructors are
  being invoked and the RenderDoc instance is being destroyed.
* Anything that needs to be shut down during capture still has to happen in
  RenderDoc::~RenderDoc since we obviously can't get the application to call a
  shutdown function in that situation.
2020-01-30 13:39:15 +00:00
baldurk 83f0398aa6 Add test to parameter zoo to catch descriptor referencing resources 2020-01-27 20:45:08 +00:00
baldurk 1899b5ffc3 Pass size when fetching cbuffer variables 2020-01-27 20:45:08 +00:00
baldurk d2cd2f0291 Check that vkCmdFillBuffer usage is properly populated in VK_Indirect 2020-01-27 20:45:07 +00:00
baldurk 14b3a06361 Add test of D3D12 ExecuteIndirect 2020-01-22 19:05:53 +00:00
baldurk a49f3f5462 Add test of degenerate vertex shaders with no outputs but full GS output 2020-01-22 19:05:53 +00:00
baldurk 6c68576707 Add workaround for strange systems with difficult visualinfo setups 2020-01-22 19:05:53 +00:00
baldurk 9dc53d4dd1 Add a test of D3D12 sharing resources 2020-01-21 18:28:57 +00:00
baldurk 60951195c2 Use VK_EXT_tooling_info in VK_Simple_Triangle 2020-01-21 18:28:57 +00:00
baldurk a869f12c9c Update vulkan headers and volk in tests project 2020-01-21 18:28:57 +00:00
baldurk 45f983f97b Fix compilation of GL demo on linux 2020-01-21 18:28:57 +00:00
baldurk db0779e09b Add test for mesh view - vertex picking and mesh rendering 2020-01-21 18:28:55 +00:00
baldurk 2ecee8fc54 Fix D3D error in D3D11_Deferred_Map 2020-01-20 14:57:00 +00:00
thisisjimmyfb 0734776a49 added test demo and script for opengl backdoor context 2020-01-20 13:41:18 +00:00
baldurk 11f1f30b46 Fix crash when mapping textures on deferred contexts 2020-01-20 12:23:47 +00:00
baldurk 42841e23be Expose vulkan layer registration in renderdoccmd on win32. Closes #1690
* This is needed so that the functional tests can elevate and run renderdoccmd
  to register the vulkan layer, if needed.
* At the same time remove the old spammy message and ignore flag - this dates
  back to before the UI existed, and that should be the way users run RenderDoc
  generally and it has a good UI for walking through layer registration if
  needed.
* The command is always available, but will only show up in help if attention is
  needed.
* Also fix registering installs on shared drives.
2020-01-20 11:46:48 +00:00
baldurk 892abb686f Apply clang-format to demos project as well 2020-01-16 23:06:23 +00:00
baldurk 2418a8faef Add a per-test duration log when running tests 2020-01-15 11:24:41 +00:00
baldurk b34c325f24 Make Iter_test.py load-and-runnable in the UI without breaking autotests 2020-01-14 18:02:10 +00:00